MySQL连接

用mysqli()方法来建立连接,如果还未创建数据库,输入服务名,账号,密码就行;
如果需要对指定数据库操作,那么就还需要输入数据库名称,看下面例子:

<?php
    //创建连接
    $mysql=new mysqli("localhost","root","root");
    if($mysql->connect_error)
    {
        die("连接失败".$mysql->connect_error);
    }
    echo "连接成功!<br>";
    
    //创建数据库
    $sql="create database php";
    if($mysql->query($sql)==true)
    {
        echo "数据库创建成功!";
    }
    else
    {
        echo "数据库创建失败".$mysql->error;
    }
?>

创建表和插入数据

<?php
    //创建连接
    $mysql=new mysqli("localhost","root","root","php");
    if($mysql->connect_error)
    {
        die("连接失败".$mysql->connect_error);
    }
    echo "连接成功!<br>";
    
    //创建数据表
    $sql1="create table user(
    id int(10) unsigned auto_increment primary key,
    pwd varchar(20) not null
)";
    if($mysql->query($sql1)==true)
    {
        echo "数据表创建成功!"."<br>";
    }
    else
    {
        echo "数据表创建失败".$mysql->error."<br>";
    }
    
    //插入数据
    $sql2="insert into user values('201801','123456')";
    if($mysql->query($sql2)==true)
    {
        echo "数据插入成功!"."<br>";
    }
    else
    {
        echo "数据插入失败".$mysql->error."<br>";
    }
    
    //插入多条数据
    $sql3="insert into user values('201802','123456');";
    $sql3.="insert into user values('201803','123456');";//每条语句后要加分号,并且后面的插入sql语句需要用".="
    if($mysql->multi_query($sql3)==true)//同时这里要用multi_query()方法,因为是多条操作语句
    {
        echo "多条数据插入成功!"."<br>";
    }
    else
    {
        echo "多条数据插入失败".$mysql->error."<br>";
    }
?>

预处理语句

<?php
    //创建连接
    $mysql=new mysqli("localhost","root","root","php");
    if($mysql->connect_error)
    {
        die("连接失败".$mysql->connect_error);
    }
    echo "连接成功!<br>";
    
    //预处理及绑定
    $sql=$mysql->prepare("insert into user values(?,?)");
    $sql->bind_param("is", $id, $pwd);//第一个int类型,第二个string类型
    
    //设置参数执行
    $id=201804;
    $pwd="123456";
    if($sql->execute())//bool类型函数,成功返回true
    {
        echo "插入操作执行成功!";
    }
    else
    {
        echo "插入操作执行失败";
    }
?>

注意bind_param函数,第一个参数为数据库参数的类型,参数有以下四种类型:

i - integer(整型)
d - double(双精度浮点型)
s - string(字符串)
b - BLOB(binary large object:二进制大对象)

读取数据

<?php
    //创建连接
    $mysql=new mysqli("localhost","root","root","php");
    if($mysql->connect_error)
    {
        die("连接失败".$mysql->connect_error);
    }
    echo "连接成功!<br>";
    
    //读取数据
    $sql="select *from user";
    $result=$mysql->query($sql);
    if($result->num_rows>0)//结果集行数
    {
        while($row=$result->fetch_assoc())//从结果集取得一行作为关联数组
        {
            echo "id:".$row["id"].",pwd:".$row["pwd"].";<br>";
        }
    }
?>

Ajax

<html>
<head>
<script>
function showHint(str)
{
    if (str.length==0)
    { 
        document.getElementById("txtHint").innerHTML="";
        return;
    }
    if (window.XMLHttpRequest)
    {
        // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行的代码
        xmlhttp=new XMLHttpRequest();
    }
    else
    {    
        //IE6, IE5 浏览器执行的代码
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET","gethint.php?q="+str,true);//跳转到指定php文件
    xmlhttp.send();
}
</script>
</head>
<body>

<p><b>在输入框中输入一个姓名:</b></p>
<form> 
姓名: <input type="text" onkeyup="showHint(this.value)">
</form>
<p>返回值: <span id="txtHint"></span></p>

</body>
</html>