当我想使用PDO从行中找到值时,我使用以下方法:
//Search whether user exists
$sqlQueryEmailLogin = $dbh->prepare("SELECT vendor_id, first_name, last_name, email_login, user_password, passport_id, login_attempts, login_last_attempt FROM $tableVendorDetails WHERE email_login = ?");
$sqlQueryEmailLogin->bindValue(1, $emailLogin);
$sqlQueryEmailLogin->execute();
以及搜索字段的以下PHP代码
$emailLogin = 'xyz@abc.com'
现在我想搜索两列或更多列并使用以下代码
$sql = "SELECT * FROM articles WHERE id = ? AND status = ?";
$stmt = $conn->prepare($sql);
$stmt->bindValue(1, $id);
$stmt->bindValue(2, $status);
$stmt->execute();
我想从字符串中搜索两列。我该怎么办呢?
我去的字符串值来自带有一个输入框的html表单
我喜欢能够从MySQL表中搜索两个值的字符串,例如
$search = $id;
和
$seach = $status;
在这种情况下,都互相取消
答案 0 :(得分:2)
您可以使用@gbestard描述的方法简化它。但你也应该这样做:
$search = 'asdf'; // fill this with your form input
$sql = "SELECT * FROM articles WHERE id = :id OR status = :status";
$stmt = $conn->prepare($sql);
$stmt->execute(array(
':id' => $search,
':status' => $search,
));
请注意查询中对OR
的更改,并多次提供$search
...
答案 1 :(得分:0)
您应该使用OR
代替AND
。这样,您将获得所有符合id或状态的行。
SELECT * FROM articles WHERE id = ? OR status = ?
答案 2 :(得分:-1)
这就是我正在使用的
$sql = "SELECT * FROM articles WHERE id = :id AND status = :status";
$stmt = $conn->prepare($sql);
$stmt->execute(array(':id' => $id , ':status' => $status));
答案 3 :(得分:-1)
尝试以下
$sql = "SELECT * FROM articles WHERE id = :id AND status = :status";
$stmt = $conn->prepare($sql);
$stmt->bindValue(':id', $id);
$stmt->bindValue(':status', $status);
$stmt->execute();