繁体   English   中英

替代“或”?

[英]Alternative to ' or "?

我正在使用PHP fwrite将HTML和PHP输入文件中,问题是这个,我用''括起$ content是什么。 HTML和PHP,

然后我用“”括起来

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

在$ content中,

但是现在当我想这样做时,我陷入了困境:

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

因为我已经使用过“”和“”,并且如果我使用了其中之一,显然就行不通了

任何解决该问题的替代方法的想法吗? 还有其他类似于'或'的符号吗?

预先感谢Niall

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

话虽如此,除非$var1是一个整数或以其他方式清除,否则您的代码将容易受到SQL注入的攻击。

您可以通过在其前面加上反斜杠来转义“或'字符:

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

如果您不想受到SQL Injection的攻击,请确保在执行此查询之前在$ var1和$ var2上调用addlashes(或类似的东西)

您可以这样做:

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

您不需要任何替代方法。

只是不要将PHP代码与您的代码一起写入文件。

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

不必为每个新用户编写另一个PHP页面,您只需使用一个PHP页面即可为所有这些用户提供服务。

该页面将操作一些数据存储 ,数据库或文本文件,并将其显示给用户。

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

您可以使用反斜杠转义报价。 因此,您可以在$ sql变量中使用

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

您也可以在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 . '"';

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

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

如果已经将字符串括在“”中,则无需在$ var1和$ var2周围再次添加它们

您不需要'或'的任何替代。您可以通过在\\之前加上\\来转义'或'

例如

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM