真正的转义字符串和 PDO

2022-08-30 07:26:57

我从库中迁移出去后使用PDO。我应该用什么来代替旧函数?mysqlreal_escape_string

我需要转义单引号,以便它们进入我的数据库,我认为可能有更好的方法来处理这个问题,而无需在我的所有字符串中添加斜杠。我应该使用什么?


答案 1

您应该使用 PDO 准备

从链接:

调用 PDO::p repare() 和 PDOStatement::execute() 以获取将使用不同参数值多次发出的语句,通过允许驱动程序协商查询计划和元信息的客户端和/或服务器端缓存来优化应用程序的性能,并通过消除手动引用参数的需要来帮助防止 SQL 注入攻击


答案 2

PDO 提供了一种替代方案,旨在用 PDO::quote() 方法替换 mysql_escape_string()。

以下是PHP网站的摘录:

<?php
    $conn = new PDO('sqlite:/home/lynn/music.sql3');

    /* Simple string */
    $string = 'Nice';
    print "Unquoted string: $string\n";
    print "Quoted string: " . $conn->quote($string) . "\n";
?>

上面的代码将输出:

Unquoted string: Nice
Quoted string: 'Nice'

推荐