0

寻找 Where 和 In 子句的正确用法。如果这不正确,请告诉我正确的使用方法

    mysqli_query=($connection,"select * from tablename where a=1 or a=2 and c=1 and d=2);

我正在尝试使用 in 子句以这种方式进行查询

    mysqli_query=($connection,"select * from tablename where a in(1,2) and c=1 and d=2);

当您在 a 中查找多个值时,这是使用 where 和 In 的正确方法吗?

非常感谢P

4

1 回答 1

1

首先,不要将值直接放入查询中,如果这些值来自用户输入和/或更容易出错,那么您将遇到SQL 注入漏洞。

其次,你的 IN 子句是正确的,看看这里的 MySql 手册。使用 Mysqli,您应该准备好您的语句,以便它们正确转义,这样:

$stmt = $mysqli->prepare("SELECT * FROM tablename WHERE a IN(?,?) and c=? and d=?")
$stmt->bind_param("iiii", 1, 2, 1, 2);
$stmt->execute();

在此处查看有关准备语句的整个 mysqli 手册。

于 2016-01-09T22:28:49.477 回答