加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 用PDO准备参数化查询

发布时间:2020-12-13 18:08:09 所属栏目:PHP教程 来源:网络整理
导读:在 PHP和MySql驱动的基于Web的应用程序中处理SQL的新的安全方法的新手,以保护SQL注入的代码.我打算开始在PDO中使用mysqli.任何人都可以请概述我应该如何开始和继续. 对任何文章的任何引用也会有所帮助. 提前致谢. 创建连接 try { $db = new PDO("mysql:dbnam
在 PHP和MySql驱动的基于Web的应用程序中处理SQL的新的安全方法的新手,以保护SQL注入的代码.我打算开始在PDO中使用mysqli.任何人都可以请概述我应该如何开始和继续.

对任何文章的任何引用也会有所帮助.

提前致谢.

创建连接
try {
    $db = new PDO("mysql:dbname=".DB_NAME.";host=".DB_HOST,DB_USER,DB_PWD);
} catch (PDOException $e) {
    die("Database Connection Failed: " . $e->getMessage());
}

然后准备一份声明

$prep = $db->prepare("SELECT * FROM `users` WHERE userid = ':id'");

如您所见,您可以通过在任何字符串前加上’:’来标记您想要的每个参数.然后,您所做的就是传递一个数组,将参数(:id)映射到执行时的值.

if (!$prep->execute(array(":id" => $userinput))) {
   $error = $prep->errorInfo();
   echo "Error: {$error[2]}"; // element 2 has the string text of the error
} else {
   while ($row = $prep->fetch(PDO::FETCH_ASSOC)) { // check the documentation for the other options here
        // do stuff,$row is an associative array,the keys are the field names
   }
}

使用“fetch”函数代替PDO :: FETCH_ASSOC,还有其他各种方法来获取数据.您可以使用fetchAll一次获取所有结果的数组,而不是逐行.或者您可以将信息数组作为0索引数组获取,或者甚至可以将结果直接提取到类实例中(如果字段名称与类的属性对齐).

PDO的所有文档都可以在这里找到:PHP.net PDO Manual

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读