以下导致错误,因为我无法将一个 var 绑定到多个占位符:
$search = "%somename%";
$stmt = $pdo->prepare("SELECT * FROM persons WHERE firstname LIKE :search OR lastname LIKE :search");
$stmt->bindValue(":search", $search, PDO::PARAM_STR);
$stmt->excecute();
我的解决方法如下:
$search = "%somename%";
$search1 = $search;
$search2 = $search;
$stmt = $pdo->prepare("SELECT * FROM persons WHERE firstname LIKE :search1 OR lastname LIKE :search2");
$stmt->bindValue(":search1", $search1, PDO::PARAM_STR);
$stmt->bindValue(":search2", $search2, PDO::PARAM_STR);
$stmt->excecute();
我认为这样的效率不是很高。我必须复制我的 var 2 次才能绑定它 2 次。如果我想查询 6 个字段,我需要复制 6 次。我的感觉是必须有更好的方法。
有没有更好的解决方法来处理这种情况?