[英]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代码,多个数据。
您可以使用反斜杠转义报价。 因此,您可以在$ 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.