从 table 中搜索不同的值
Search different value from a table
我有一个table这样的
id ' type ' title <br>
1 ' Signature ' Sample signature <br>
2 ' Documents ' Sample documents <br>
3 ' Scholarship ' Sample scholarship <br>
和sql
$info = array('Signature','Documents');
$sql="SELECT * FROM tbl_docs WHERE type='$info'";
但是为什么没有显示签名和文件?
SQL WHERE
子句采用 <var> = <value>
形式的表达式,其中值是原子的。如果您需要多个值,您可以使用 <var> IN <value list>
。您的查询将有效,但如果用户可以输入值,则存在 SQL 注入漏洞。最好有一个 table 包含要匹配的项目,然后加入两个 table。
使用这个:-
$sql="SELECT * FROM tbl_docs WHERE type in '$info'";
您正在尝试将数组连接到字符串,这需要工作
示例:
http://codepad.org/BDhfzxjj
如果您尝试检索类型等于 Signature 或 Document 的文档,最好的方法是使用 IN
语句和 sql.
从数组中执行此操作的一种有效方法是使用 implode.
$info = array('Signature','Documents');
$sql = "SELECT * FROM tbl_docs WHERE type in ('".implode('\', \'',$info)."')";
示例:http://codepad.org/55Ef9zqr
Sql 代码在行动:http://sqlfiddle.com/#!9/d91d0/1
那么正确的做法应该是这样的..
您必须使用 IN 子句
$var=join(',',$info);
$sql = "SELECT * FROM tbl_docs WHERE type IN ($var)";
我有一个table这样的
id ' type ' title <br>
1 ' Signature ' Sample signature <br>
2 ' Documents ' Sample documents <br>
3 ' Scholarship ' Sample scholarship <br>
和sql
$info = array('Signature','Documents');
$sql="SELECT * FROM tbl_docs WHERE type='$info'";
但是为什么没有显示签名和文件?
SQL WHERE
子句采用 <var> = <value>
形式的表达式,其中值是原子的。如果您需要多个值,您可以使用 <var> IN <value list>
。您的查询将有效,但如果用户可以输入值,则存在 SQL 注入漏洞。最好有一个 table 包含要匹配的项目,然后加入两个 table。
使用这个:-
$sql="SELECT * FROM tbl_docs WHERE type in '$info'";
您正在尝试将数组连接到字符串,这需要工作
示例: http://codepad.org/BDhfzxjj
如果您尝试检索类型等于 Signature 或 Document 的文档,最好的方法是使用 IN
语句和 sql.
从数组中执行此操作的一种有效方法是使用 implode.
$info = array('Signature','Documents');
$sql = "SELECT * FROM tbl_docs WHERE type in ('".implode('\', \'',$info)."')";
示例:http://codepad.org/55Ef9zqr
Sql 代码在行动:http://sqlfiddle.com/#!9/d91d0/1
那么正确的做法应该是这样的..
您必须使用 IN 子句
$var=join(',',$info);
$sql = "SELECT * FROM tbl_docs WHERE type IN ($var)";