gpt4 book ai didi

php mysql real_escape_string 用于整个查询

转载 作者:行者123 更新时间:2023-11-29 01:21:28 26 4
gpt4 key购买 nike

是否可以转义整个查询而不是每个搜索字段。例如,我知道我可以这样做:

$name="O'Connor";
$email="mark.O'Connor@something.com";

$name=mysql_real_escape_string($name);
$email=mysql_real_escape_string($email);

$query =("SELECT * FROM TABLE1 WHERE Name = '$name' OR Email = '$email' ");

// code to run query here

我正在寻找的是一种构建我的查询字符串的方法:

$query=("SELECT * FROM TABLE1 WHERE Name = '$name' OR Email = '$email' ");
$query=mysql_real_escape_string($query); // Can I escape the whole Query ??

// code to run query here

我问这个问题的原因是我有一个复杂的查询,它使用了大约 15 个来自表单的变量,我想一次清理它们而不是使用大量的 mysql_real_escape($vairableName)...

这可能吗,任何人都可以解释我如何实现这一目标

提前致谢

最佳答案

你不能那样做。转义将 SQL 中具有特殊含义的字符更改为转义序列。您需要一些具有特殊含义的字符,这样查询才能工作。如果您可以转义整个查询,那么所有数据库驱动程序都会自动执行此操作。

例如

$foo = "John O'Reilly";
$sql = "WHERE name='$foo'";
# There are three ' characters here, but only the middle one should be escaped

也就是说,您应该停止使用 an obsolete database API并选择一个 modern replacement支持 prepared statements这将使您不必到处调用 real_escape_string

关于php mysql real_escape_string 用于整个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23757072/

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