msqli从表中选择a = 1或a = 2

时间:2016-01-09 21:56:57

标签: mysqli where-in mysqli-multi-query

正在寻找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

1 个答案:

答案 0 :(得分:1)

首先,不要直接在查询中放置值,如果这些值来自用户输入和/或更容易出错,则会有SQL Injection vulnerabilities

其次,您的IN子句是正确的,请查看MySql手册here。 使用Mysqli,您应该准备好您的语句,以便以这种方式正确转义:

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

查看有关准备语句here的整个mysqli手册。