连接数据库方式:
- mysql扩展,这种方式PHP 7已经淘汰
- mysqli扩展
- PDO扩展
面向过程
getMessage());
}
mysqli_close($conn);
## 面向对象
getMessage());
}
$conn->close();
### 字符串转义处理
确保特殊字符被正确转义,从而避免SQL注入等安全问题,并保证查询语句的语法正确性:`$conn->real_escape_string($string);`
### 预处理
$sql = "select * from test where username=? and password=?"; $stmt = $conn->prepare($sql); // 绑定 $stmt->bind_param('ss', $username, $password); // 执行 $stmt->execute(); // 获取结果 $result = $stmt->get_result(); print_r($result->fetch_all()); // 关闭 $stmt->close();PHP 8新方法: $sql = "insert into user (username, password) values (?, ?)"; $conn->execute_query($sql, ['user1', '123456']); $conn->execute_query($sql, ['user2', '123456']); //可重复执行多次
## PDO
PDO(PHP Data Object)为PHP访问各种数据库提供了一个轻量级,一致性的接口。无论访问什么数据库,都可以通过一致性的接口去操作。
需要安装php_pdo_mysql扩展,可用函数来查看是否安装了PDO扩展。
PDO执行SQL语句分2种:exec()和query()。exec()适用于执行不返回结果集的SQL语句,query()适用于执行返回结果集的SQL语句。
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo '数据库连接成功'; } catch (PDOException $e) { die('错误!:' . $e->getMessage()); } $conn = null; //关闭连接
### 预处理
try { // 开始事务 $conn->beginTransaction(); $sql = "insert into user (username, password) values (?,?);"; $stmt = $conn->prepare($sql);
$data = array(
array('值1', '值2'),
array('值11', '值22'),
);
$insertedRows = 0;
foreach ($data as $row) {
$stmt->execute($row);
$insertedRows += $stmt->rowCount();
}
// 提交事务
$conn->commit();
echo '批量插入成功';
} catch (PDOException $e) {
$conn->rollBack();
die('错误!:' . $e->getMessage());
}
本文作者:a
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA
许可协议。转载请注明出处!