如何在php sql中创建一个字符串文字

时间:2015-06-19 06:41:59

标签: php sql

我有这样的查询。这个来自一个文本框。由于中的',它是,它会关闭字符串。

我不想在文本框中捕获它。因为我需要允许文本框写出用户想要的任何内容。

我试图在变量之前放置@。但它似乎不像C#那样在字符串之前放置@使其成为文字。

我知道这也容易受到注射。但是,如果解决方案也与注射有关,那么同样可以在一块石头上击中两只鸟。但是,如果它可以解决只是逃避将要做的角色。

$_GETVARS['txtReason'] = "'it's already there, in droves.'";

UPDATE tablename SET reason_for_exception='".$_GETVARS['txtReason']."' WHERE ID='1'

4 个答案:

答案 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()

  

供参考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?