PHP学习(五)
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>