MYSQL或不工作

Bab*_*dey -1 php mysql

我有一个代码OR无法正常工作

try {
  $keyword = trim($_GET["keyword"]);
  if ($keyword <> "" ) {
    $sql = "SELECT * FROM tbl_contacts WHERE 1 AND "
            . " (first_name OR last_name LIKE :keyword) ORDER BY first_name ";
    $stmt = $DB->prepare($sql);

    $stmt->bindValue(":keyword", $keyword."%");
Run Code Online (Sandbox Code Playgroud)

它只搜索last_name而不是搜索first_name.

我需要它应该搜索last_namefirst_name.

u_m*_*der 6

正确的代码是:

$sql = "SELECT * FROM tbl_contacts WHERE 1 AND "
        . " (first_name LIKE :keyword1 OR last_name LIKE :keyword2) ORDER BY first_name ";
$stmt = $DB->prepare($sql);
$stmt->bindValue(":keyword1", $keyword."%");
$stmt->bindValue(":keyword2", $keyword."%");
Run Code Online (Sandbox Code Playgroud)

请注意,你不能有超过一个占位符相同的名称.这就是我使用keyword1keyword2绑定相同值的原因.

  • @TSungur为什么? (2认同)