我使用它并且工作正常。
$stmt1 = $conn->prepare("SELECT * FROM Authors WHERE First=:id");
$stmt1->bindParam(':id', $_GET['name'], PDO::PARAM_STR);
blah blah...
当我更改WHERE' First =:id'到'最后=:id'但是当我在下面包含一个OR子句时它会失败。
$stmt1 = $conn->prepare("SELECT * FROM Authors WHERE First=:id OR Last=:id");
$stmt1->bindParam(':id', $_GET['name'], PDO::PARAM_STR);
我在Stack#3030650中找到了这个。
$stmt = $dbh->prepare("SELECT * FROM REGISTRY WHERE firstname = :name OR lastname = :name");
$stmt->bindParam(':name', $name);;
由于这些看起来一样,我忽略了什么。
感谢您的任何建议。
答案 0 :(得分:2)
我会将它绑定两次,可能使用不同的占位符,即使它是相同的值:
$query = "SELECT * FROM REGISTRY WHERE firstname = :fname OR lastname = :lname";
$stmt = $dbh->prepare($query);
$stmt->bindParam(':fname', $name);
$stmt->bindParam(':lname', $name);