MYSQL或无法正常工作 [英] MYSQL OR not working

查看:114
本文介绍了MYSQL或无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a code in which OR is not working

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."%");

仅从last_name搜索,而不从first_name搜索.

It only search from last_name and not from first_name.

我需要它同时搜索姓氏名字.

推荐答案

正确的代码是:

$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."%");

通知,您不能具有多个一个同名占位符.这就是为什么我使用keyword1keyword2并将相同的值绑定到它们的原因.

Notice that you cannot have more than one placeholder with same name. That's why I use keyword1 and keyword2 and bind same value to them.

这篇关于MYSQL或无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆