我有这样的查询。这个来自一个文本框。由于中的',它是,它会关闭字符串。
我不想在文本框中捕获它。因为我需要允许文本框写出用户想要的任何内容。
我试图在变量之前放置@。但它似乎不像C#那样在字符串之前放置@使其成为文字。
我知道这也容易受到注射。但是,如果解决方案也与注射有关,那么同样可以在一块石头上击中两只鸟。但是,如果它可以解决只是逃避将要做的角色。
$_GETVARS['txtReason'] = "'it's already there, in droves.'";
UPDATE tablename SET reason_for_exception='".$_GETVARS['txtReason']."' WHERE ID='1'
答案 0 :(得分:1)
我认为您应该尝试使用以下查询,最好使用存储过程,此类问题不会在那里发生。
UPDATE tablename SET reason_for_exception='it''s already there, in droves.' WHERE ID='1'
或者如果你想继续普通的查询,然后将该字符串存储到一些字符串变量,然后尝试,可能对你有帮助。
像
$_GETVARS['txtReason' = "it's already there, in droves.";
UPDATE tablename SET reason_for_exception='".mysqli_real_escape_string($link,$_GETVARS['txtReason')."' WHERE ID='1'
答案 1 :(得分:1)
$reason_for_exception = mysql_real_escape_string("your text here");
UPDATE tablename SET reason_for_exception= "$reason_for_exception" WHERE ID='1'
那怎么样?
答案 2 :(得分:1)
用于将您的内容包装在mysqli_real_escape_string()
中$_GETVARS['txtReason' = "it's already there, in droves.";
UPDATE tablename SET reason_for_exception='".mysqli_real_escape_string($link,$_GETVARS['txtReason')."' WHERE ID='1'
答案 3 :(得分:0)
您可以使用mysqli_real_escape_string来转义SQL输入的字符串。
不确定您用于构建查询的内容,但如果您尚未使用预备语句,则可能需要查看。 How can I prevent SQL injection in PHP?