问题:
从 mysql_* 迁移到 PDO 时,等价于什么mysql_real_escape_string 函数?
答案:
与 mysql_real_escape_string 不同,PDO 通过使用准备好的语句来执行自动转义。准备好的语句使用占位符(例如?),而不是直接将用户输入插入到 SQL 查询中,从而防止 SQL 注入漏洞。
示例:
<code class="php">try { $db = new PDO(...); } catch (PDOException $e) { echo "Error connecting to mysql: " . $e->getMessage(); } if (isset($_POST['color'])) { $stmt = $db->prepare("SELECT id, name, color FROM Cars WHERE color = ?"); $stmt->execute([$_POST['color']]); $cars = $stmt->fetchAll(\PDO::FETCH_ASSOC); var_dump($cars); }</code>
在此示例中, $_POST['color'] 在准备好的语句中作为参数传递,保护查询免受注入。
附加说明:
以上是从 mysql_* 迁移到 PDO 时如何转义用户输入?的详细内容。更多信息请关注PHP中文网其他相关文章!