数据库连接
php
<?php
$servername = "localhost"; // 服务器地址(127.0.0.1)
$username = "root"; // 数据库用户名
$password = "root"; // 数据库密码
$dbname = "haha"; // 数据库名称
// 创建连接(面向对象方式)
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if($conn->connect_error) {
die("连接失败:" . $conn->connect_error);
}
// 没有错误信息说明连接成功
?>
技术要点:
- localhost:本地主机,等同于127.0.0.1
- mysqli:MySQL改进扩展,支持面向对象和过程化两种风格
- 错误处理:使用die()函数中止脚本并输出错误信息
查询操作(SELECT)
php
<?php
// 准备SQL查询语句
$sql = "SELECT * FROM table1 WHERE id < 3";
// SELECT * - 选择所有列
// FROM table1 - 从table1表中查询
// WHERE id < 3 - 筛选条件
// 执行查询
$result = $conn->query($sql);
// 检查结果
if($result->num_rows > 0) {
// 遍历结果集
while($row = $result->fetch_assoc()) {
echo $row['id'] . '-----' .
$row['username'] . '------' .
$row['job'] . '<br/>';
}
} else {
echo "0结果";
}
?>
WHERE子句高级用法:
sql
-- 多条件查询(AND)
SELECT * FROM table1 WHERE id > 1 AND id < 4;
-- 多条件查询(OR)
SELECT * FROM table1 WHERE username='user1' OR username='user2';
-- 不加WHERE返回所有数据
SELECT * FROM table1;
对象属性说明:
- num_rows:结果集中的记录数
- field_count:字段数量
- fetch_assoc():获取关联数组形式的结果
插入操作(INSERT)
php
<?php
$sql = "INSERT INTO table1 (username, password, job)
VALUES('user5', 'mima55', 'cfo')";
if($conn->query($sql) === TRUE) {
echo "新记录插入成功";
} else {
echo "插入失败:" . $conn->error;
}
?>
应用场景:
- 用户注册功能
- 发布文章、评论
- 订单创建
安全提示: 实际应用中应该从GET或POST获取用户输入,而非硬编码。
更新操作(UPDATE)
php
<?php
$sql = "UPDATE table1 SET password='mima598' WHERE username='user5'";
if($conn->query($sql) === TRUE) {
echo "修改成功";
} else {
echo "修改失败:" . $conn->error;
}
?>
安全警告:
sql
-- 危险操作:不加WHERE会修改所有记录
UPDATE table1 SET password='123456';
-- 安全操作:使用WHERE限定范围
UPDATE table1 SET password='123456' WHERE id=5;
删除操作(DELETE)
php
<?php
$sql = "DELETE FROM table1 WHERE username='user5'";
if($conn->query($sql) === TRUE) {
echo "删除成功";
} else {
echo "删除失败:" . $conn->error;
}
?>
注意事项:
- 删除操作不可恢复,务必谨慎
- 必须使用WHERE子句限定删除范围
- 即使删除不存在的记录也会返回"成功"
关闭连接
php
<?php
// 操作完成后关闭数据库连接
$conn->close();
?>
专业规范:
- 及时关闭连接释放资源
- 避免高并发时连接池耗尽
- 防止数据库崩溃