gpt4 book ai didi

php - 如何处理包含引号(等)的用户输入?

转载 作者:太空宇宙 更新时间:2023-11-03 10:24:18 28 4
gpt4 key购买 nike

我有一个标准的文本输入框。它从 $_POST 获取它的值,我用它来构建一个 SQL 查询(ODBC,而不仅仅是 MySQL,如果这有所不同(或者例如,我不能使用 mysql_escape_string() ))。

我正在构建的查询在 PHP 上有单引号,在 SQL 上有双引号。例如:

$sql = 'SELECT * FROM ' . $table . ' WHERE field="' . $_POST['some_field'] . '"";

如果用户在他的输入中包含双引号,例如 6"wrench,我会在不平衡字符串(单引号,如 O'reilly 没问题)。

处理此问题的正确方法是什么?同样,我使用的是 ODBC 接口(interface),而不是 MySQL

这只是 addslashes() 的问题吗?还是魔术引号?


更新:PHP 手册中提到了魔术引号......

This feature has been DEPRECIATED as of PHP 5.3.0. Relying on this feature is highly discouraged.

(并不是说他们提出了替代方案;事实上,它还说魔术引号将在 PHP 6 中删除)

答案应该是使用准备好的语句吗?

最佳答案

使用 PDO prepared statements .它supports ODBC

关于php - 如何处理包含引号(等)的用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7550290/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com