替代'或'?

时间:2011-04-07 19:58:52

标签: php variables fwrite

我使用PHP fwrite将HTML和PHP输入到文件中 问题是这个,我用''来包含$ content is ie。 HTML和PHP,

然后我用“”括起来

 $sql="SELECT * FROM $tbl_name WHERE..... 

在$ content中,

但是现在我想要这样做时卡住了:

  WHERE var1="$var1" and var2="$var2"  

因为我已经使用了''和“”,如果我使用其中一个,那么它显然不会起作用

有什么想法可以解决这个问题吗?还有其他类似'或'的符号吗?

提前致谢 尼尔

10 个答案:

答案 0 :(得分:5)

$sql = 'SELECT * FROM ' . $tbl_name . ' WHERE var1="' . $var1 . '"';

话虽如此,除非$var1是整数或以其他方式消毒,否则您的代码将容易受到SQL injections的攻击。<​​/ p>

答案 1 :(得分:4)

你可以通过在它前面加上反斜杠来逃避“或”字符:

$sql = "SELECT * FROM $tbl_name WHERE var1=\"$var1\" and var2=\"$var2\""

如果你不想容易受到SQL注入,请确保在执行此查询之前在$ var1和$ var2上调用addslashes(或类似的东西)。

答案 2 :(得分:2)

你可以这样做:

 $sql='select * from '.$tblname.' where...

答案 3 :(得分:2)

您不需要任何替代方案。

只是不要将PHP代码写入包含代码的文件中。

看,你使用PHP非常错误的方式。

除了为每个新用户编写另一个PHP页面,您必须只使用一个PHP页面来为它们提供服务。

此页面将运行一些数据存储,数据库或文本文件,并将其显示给用户。

这就是每个PHP应用程序的工作方式:单个PHP代码,多个数据。

答案 4 :(得分:1)

您可以使用反斜杠转义引号。所以在你的$ sql变量中你可以使用

\" Escaped Double Quote.
\' Escaped Single Quote.

答案 5 :(得分:1)

您也可以在SQL查询中使用单引号:

$sql = "SELECT * FROM $tbl_name WHERE var1='some string value' AND var2='$var2'";

或者只使用字符串连接,它适用于单引号和双引号字符串:

$sql = "SELECT * FROM $tbl_name WHERE var1='" . $var1 . "' AND var2='" . $var2 . "'";
$sql = 'SELECT * FROM ' . $tbl_name . ' WHERE var1="'. $var1 . '" AND var2="' . $var2 . '"';

答案 6 :(得分:1)

虽然上面的所有答案都是正确的,但我想指出一个更优雅的解决方案:

sprintf('SELECT * FROM %s WHERE var1 = "%s" AND var2 = %d', "tableName, "someString", 12);

答案 7 :(得分:0)

如果您已将字符串括在&#34;&#34;中,则无需再次在$ var1和$ var2

周围添加它们

答案 8 :(得分:0)

答案 9 :(得分:0)

您不需要任何替代'或'。 你可以通过在它之前放置\来逃避'或'

例如

$sql = "SELECT * from $table_name where var1=\"$var1\" and var2=\"$var2\""

执行后,$ sql里面的字符串将是

SELECT * from my_table where var1="var1_value" and var2="var2_value"