php - PHP 中的参数化查询

标签 php mysql

$postid = $_GET['p'];

$stmt = $conn->prepare("SELECT * FROM posts WHERE post_id=:postid");
$stmt->bindValue(':postid', $postid);
$stmt->execute();

while($postRows = mysqli_fetch_assoc($stmt)){
    $posts[] = $postRows;
}

上面的代码不起作用。

通常我会这样做:

$postid = mysqli_real_escape_string($conn,$_GET['p']);
$result = mysqli_query($conn,"SELECT * FROM posts WHERE post_id='$postid'");

while($postRows = mysqli_fetch_assoc($result)){
    $posts[] = $postRows;
} 

这对我有用。

我似乎无法理解这个问题,因为在线解释在实际解释如何执行这些操作方面做得很差,所以我一直使用 mysqli_real_escape_string 代替,但我知道它可能很容易受到攻击。 谁能帮助我了解如何正确执行这些查询?

最佳答案

您可以尝试此代码

  $stmt = $conn->prepare("SELECT * FROM posts WHERE post_id=:postid");
  $stmt->bindValue(':postid', $postid, PDO::PARAM_INT);
  $stmt->execute();
  $posts = $stmt->fetchAll(PDO::FETCH_ASSOC);

关于php - PHP 中的参数化查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31698985/

相关文章:

php - $_SERVER ['HTTP_REFERER' ] 安全吗?

php - 如何正确使用mysql InnoDB连接查询

mysql - 插入到具有 auto_increment 列外键的子表

mysql - Wordpress 到 Jekyll 脚本抛出错误

mysql - 中间函数/查询奇数和偶数字符串

MySQL 将数据从一个表添加到另一个表

Mysql 匹配数字关键字

php - 初学者试图将 xml 读入 php

javascript - 网站 CSS 和 JavaScript 更新缓慢

php - 字符串替换数组 PHP 中的所有项目