从 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)";