编程接口
从PHP5开始,PHP向程序员提供了两种MySQL应用程序编程接口:一种是从PHP早期版本一 直就有的mysql功能模块;另一种是从PHP5才开始有的mysqli接口;
mysql功能模块不是PHP的一个集成组件。要想使用这个功能扩展模块,不管使用是哪一种操作系统,都必须在php.ini文件里启用这个扩展以确保PHP能够找到所有必要的DLL "php_mysqli"。
phpinfo()
查看php.ini设置,包括路径
数据库操作一般步骤
- MySQL建立连接与选择要操作的数据库
- 进行增删改查操作
- 关闭连接
1.连接MySQL服务器
用mysqli_connect("端口","用户名","密码","连接的数据库")
或者 new mysqli
方法连接数据库
如果连接成功,这个函数将返回一个对象.否则将返回false,并向web服务器发送一条出错消息,如果不想让最终用户在他们的web浏览器看到这样的出错消息,就必须在函数前面加上一个@字符.
设置获取数据库的数据编码格式 $conn->query('set names utf8'); mysqli_query($conn,'set names utf8');
2.执行SQL语句
$result = mysqli_query($conn,$sql);
%result = $conn ->query ($sql);
3.获取和显示数据
fetch_row()
将以一个普通数组的形式返回一条结果,它的各个字段需要以$row[n]
的方式进行访问
fetch_array()
将以一个关联数组的形式返回一条结果,它的各个字段需要以$row[n]
或$row["colname"]
的方式进行访问
fetch_assoc()
将以一个关联数组的形式返回一条结果记录,但它的各个字段只能以 $row["colname"]
的方式进行访问。
fetch_object()
函数以一个对象的形式返回一条结果记录, 它的各个字段需要以$row->colname
的方式进行访问
这四个函数的共同点是:每次调用将自动返回下一条结果记录,但如果已经到达结果数据表的末尾,则返回false;
mysqli_free_result(result)
提前释放某次查询结果
mysqli_num_rows($conn)
函数用于获取查询返回的记录数
mysqli_insert_id($conn)
用于获取INSERT操作产生的ID;
mysqli_affected_rows($conn)
函数用于获取前一次mysql操作所影响的记录数;
SELECT例子
<?php
header("Content-Type: text/html;charset=utf-8");
//连接数据库
$con = mysqli_connect("localhost","root","","beautifulGirl");
//设置编码格式
$conn->query("set names utf8");
//设置sql操作查询ziliao表格中的所有数据
$sql = "SELECT * FROM ziliao";
//执行sql语句,将返回的数据存储于变量result中
$result = $con->query($sql);
//创建表格填写数据
echo '<table border=1>';
//以数组的方式返回数据
while($arr = $result->fech_assoc()){
echo "<tr>
<td>{$arr["id"]}</td>
<td>{$arr["name"]}</td>
<td>{$arr["age"]}</td>
</tr>";
}
?>
INSERT例子
<?php
//连接数据库
$conn = @mysqli_connect("localhost","root","","beautifulGirl");
if(!$conn){
die("连接失败")
}
//设置编码格式
$conn->query(set names utf8);
//设置sql语句添加一行name为"刘亦菲",age为"永远20岁"的数据
$sql="INSERT INTO ziliao (name,age) VALUES ('刘亦菲','永远20岁')";
//执行sql语句
$conn->query($sql);
//由操作改变的数据条目判断是否添加成功
if(mysqli_affected_rows($conn)>0){
echo "添加成功".myquli_insert_id($conn);
}else{
echo "添加失败";
}
?>
UPDATE例子
<?php
//连接数据库
$conn = @mysqli_connect("localhost","root","","beautifulGirl")
if(!$conn){
die("连接失败");
}
//设置编码格斯
$conn->query("set names utf8");
//设置SQL语句
$sql = "UPDATE ziliao SET name = '小苍' WHERE age = '30'";
//执行sql语句
$conn->query($sql);
//判断是否修改成功
if(mysqli_affected_rows($conn)>0){
//修改成功则输出改变的行数
if(mysqli_affected_rows($conn)>0){
echo "修改成功".mysqli_affected_rows($conn);
}else{
echo "修改失败";
}
}
?>
DELETE 例子
$conn = @$mysqli_connect("localhost","root","","beautifulGirl");
$conn->query("set names utf8");
$sql = "UPDATE FROM zilao WHERE name = '小苍'";
$conn->query($sql);
if(mysqli_affected_rows($conn)>0){
echo "删除成功".mysqli_affected_rows($conn);
}else{
echo "删除失败";
}