PHP 与 MySQL 交互
交互函数
函数名 | 作用 |
---|---|
mysqli_connect() | 与MySQL 数据库建立连接。 |
mysqli_close() | 关闭与MYSQL 数据库建立的连接。 |
mysqli_connect_errno() | 与MySQL 数据库建立连接时,发生错误时的错误编号。 |
mysqli_connect_error() | 与MySQL 数据库建立连接时,发生错误时的错误信息。 |
mysqli_query() | 执行SQL 语句。 |
mysqli_errno() | 执行SQL 语句时,发生错误的编号。 |
mysqli_error() | 执行SQL 语句时,发生错误的信息。 |
mysqli_fetch_assoc() | 从结果集对象中取数据,按条取数据。 |
建立连接
php
<?php
$db_host="127.0.0.1"; //或 localhost
$de_user="root"; // 用户名
$db_pass="root"; // 密码
$db_name="bbs"; // 数据库名
$link = @mysqli_connect($db_host,$de_user,$db_pass,$db_name);
// 防止报错加 @
if(!$link){
// 如果连接数据库失败则输出连接失败
echo "connect to database failed!";
echo mysqli_connect_errno();
// 输出错误编号
echo mysqli_connect_error();
// 输出错误原因
exit();
//连接失败直接退出,不执行后续代码
}else{
echo "connect to database access";
}
?>
执行语句
php
<?php
// 成功建立连接后
// 定义要执行的 sql 语句
$sql = "select * from message;";
// 返回结果集对象
$results = mysqli_query($link,$sql);
if(!$results){
// 如果发生错误,执行失败
echo mysqli_errno($link);
// 返回错误编号
echo mysqli_error($link);
// 返回错误信息
}
// 从结果集对象中取数据
// $result = mysqli_fetch_assoc($results); 返回关联数组
while($result = mysqli_fetch_assoc($results)){
// $result 能取到值时,() 内为 true,执行循环
// 当取完全部数据时,$result 的取值变为空,此时 () 内为 false,跳出循环
var_dump($result);
// 此处可添加表格形式输出,下面练习会出现
}
?>
关闭连接
php
mysqli_close($link);
练习
新建数据库 bbs
mysql
create database bbs;
导入数据库
mysql
use bbs;
source C:/Users/LEGION/Desktop/bbs.sql;
# 注意 Windows 的路径用 "/" 隔开
交互
php
<?php
$db_host="127.0.0.1"; //或 localhost
$de_user="root";
$db_pass="root";
$db_name="bbs";
$link = @mysqli_connect($db_host,$de_user,$db_pass,$db_name);
// 防止报错加 @
if(!$link){
$failed = "[".mysqli_connect_errno()."]".mysqli_connect_error();
exit($failed);
//连接失败直接报错退出,不执行后续代码
}else{
$sql = "select * from message;";
// 定义数据库查询语句
$results = mysqli_query($link,$sql);
// 返回结果对象集
if(!$results){
// 如果获取失败
echo "[".mysqli_errno($link)."]".mysqli_error($link);
}
echo"<table border=1>";
echo"<tr><td>id</td><td>uid</td><td>title</td><td>content</td></tr>";
// 每条数据包含 id、uid、title、content 四项
while($result = mysqli_fetch_assoc($results)){
// 在查询的对象集中依次提取每条数
echo "<tr>";
// 每次循环(每条留言)建立一行
foreach($result as $key => $value){
echo "<td>";
echo $value;
echo "</td>";
}
echo "</tr>";
}
echo"</table>";
}
mysqli_close($link);
?>
效果