本文将详细介绍如何使用php连接MySQL并对数据库进行读取、写入数据等,具有一定的参考价值。
php连接数据库
<?php
header("content-Type: text/html; charset=utf-8");//字符编码设置
$servername = "localhost";
$username = "数据库用户名";
$password = "数据库密码";
$dbname = "数据库名";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn -> connect_error) {
die("Connection failed: " . $conn -> connect_error);
} else {
echo "连接成功";
}
$conn -> close();
?>
注:
- 代码中第 4 行需要替换为自己的数据库用户名,一般为root或为项目专门设置的用户名
- 代码中第 5 行需要替换为自己的数据库用户名对应的密码,一般为root密码或为项目专门设置的用户名的密码
- 代码中第 6 行需要替换为自己要访问的数据库名
配置好php环境,如各项信息填写正确,访问网页将显示 连接成功 的提示:
![](https://blog.llyth.cn/wp-content/uploads/2022/08/image.png)
否则将显示错误信息:
![](https://blog.llyth.cn/wp-content/uploads/2022/08/image-1.png)
![](https://blog.llyth.cn/wp-content/uploads/2022/08/image-2.png)
php从数据库表中获取数据
我们在数据库中新建一个表,存放一些演示数据:
![](https://blog.llyth.cn/wp-content/uploads/2022/08/image-3.png)
$sql = "SELECT * FROM `temp1`";
$result = $conn->query($sql);
通过上述两行代码,我们便可以将名为temp1
的表中所有数据获取到,并储存在$result
中;但此时不能直接输出$result
:
![](https://blog.llyth.cn/wp-content/uploads/2022/08/image-4.png)
我们可以将数据转换成Array
格式并使用print_r
输出:
$sql = "SELECT * FROM `temp1`";
$result = $conn -> query($sql);
$arr = array();
// 输出每行数据
while($row = $result -> fetch_assoc()) {
$count = count($row);//不能在循环语句中,由于每次删除row数组长度都减小
for($i = 0; $i < $count; $i ++){
unset($row[$i]);//删除冗余数据
}
array_push($arr, $row);
}
print_r($arr);
但平时使用过程中我们可能需要JSON
格式的数据,可以使用json_encode
将输出数据格式变为JSON
格式:
$sql = "SELECT * FROM `temp1`";
$result = $conn -> query($sql);
$arr = array();
// 输出每行数据
while($row = $result -> fetch_assoc()) {
$count = count($row);//不能在循环语句中,由于每次删除row数组长度都减小
for($i = 0; $i < $count; $i ++){
unset($row[$i]);//删除冗余数据
}
array_push($arr, $row);
}
echo json_encode($arr, JSON_UNESCAPED_UNICODE);//json编码
![](https://blog.llyth.cn/wp-content/uploads/2022/08/image-5.png)
完整代码:
<?php
header("content-Type: text/html; charset=utf-8");//字符编码设置
$servername = "localhost";
$username = "temp";
$password = "123456";
$dbname = "tempsql";
// 创建连接
$conn =new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn -> connect_error) {
die("Connection failed: " . $conn -> connect_error);
} else {
$sql = "SELECT * FROM `temp1`";
$result = $conn -> query($sql);
$arr = array();
// 输出每行数据
while($row = $result -> fetch_assoc()) {
$count = count($row);//不能在循环语句中,由于每次删除row数组长度都减小
for($i = 0; $i < $count; $i ++){
unset($row[$i]);//删除冗余数据
}
array_push($arr, $row);
}
echo json_encode($arr, JSON_UNESCAPED_UNICODE);//json编码
$conn->close();
}
?>
php向数据库表中写入数据
我们可以使用URL中携带参数的方式将数据写入到数据库(注意!请不要在生产环境中使用此种方式!)
使用$_GET
接收URL中携带的参数,需要事先定义好变量名 = $_GET["参数名"]
:
$key1 = $_GET["key1"];
$key2 = $_GET["key2"];
$key3 = $_GET["key3"];
$key4 = $_GET["key4"];
编写写入部分:
$sql = mysqli_query($conn, "INSERT INTO `temp1` (`key1`, `key2`, `key3`, `key4`) VALUES ('$key1', '$key2', '$key3', '$key4')");
携带参数执行上述代码即可成功写入数据库,但目前没有提示我们无法确认数据是否成功写入(不够人性化)、没有添加判断条件无法保证写入参数是否缺失,于是将代码进行修饰:
if ($key1 == '' || $key2 == '' || $key3 == '' || $key4 == '') {
echo '<h1>参数错误!</h1>';
} else {
$sql = mysqli_query($conn, "INSERT INTO `temp1` (`key1`, `key2`, `key3`, `key4`) VALUES ('$key1', '$key2', '$key3', '$key4')");
if ($sql) {
echo '<h1>操作成功!请手动关闭窗口:)</h1>';
} else {
echo '<h1>请不要重复添加!</h1>';
}
}
注:当数据库没有设置主键或唯一约束时,代码5-9
行的判断将一直为true
,无法进行重复存入提示与限制重复存入!
我们将key1
设为主键,并查看效果:
![](https://blog.llyth.cn/wp-content/uploads/2022/08/image-6.png)
此时我们可在数据库中看到新写入的数据:
![](https://blog.llyth.cn/wp-content/uploads/2022/08/image-8.png)
![](https://blog.llyth.cn/wp-content/uploads/2022/08/image-10.png)
![](https://blog.llyth.cn/wp-content/uploads/2022/08/image-9.png)
完整代码:
<?php
header("content-Type: text/html; charset=utf-8");//字符编码设置
$servername = "localhost";
$username = "temp";
$password = "123456";
$dbname = "tempsql";
$key1 = $_GET["key1"];
$key2 = $_GET["key2"];
$key3 = $_GET["key3"];
$key4 = $_GET["key4"];
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn -> connect_error) {
die("Connection failed: " . $conn -> connect_error);
} else {
if ($key1 == '' || $key2 == '' || $key3 == '' || $key4 == '') {
echo '<h1>参数错误!</h1>';
} else {
$sql = mysqli_query($conn, "INSERT INTO `temp1` (`key1`, `key2`, `key3`, `key4`) VALUES ('$key1', '$key2', '$key3', '$key4')");
if ($sql) {
echo '<h1>操作成功!请手动关闭窗口:)</h1>';
} else {
echo '<h1>请不要重复添加!</h1>';
}
}
$conn -> close();
}
?>
至此教程完成。
写在后面:截止到文章发布时我没有专门学习过php,故本文仅对php操作MySQL功能进行实现,文中如有错误欢迎指正,非常感谢୧(๑•̀⌄•́๑)૭
声明:
本文采用
BY-NC-SA
协议进行授权,如无注明均为原创,转载请注明转自
Eric · 梦曦
本文地址: php连接MySQL并操作数据库
本文地址: php连接MySQL并操作数据库