【问题标题】:Why is this code failing? mysql like problem为什么这段代码失败了? mysql之类的问题
【发布时间】:2018-10-25 06:40:18
【问题描述】:

我想在mysql数据库中搜索。我希望为搜索发送的搜索在表的 2 列中进行搜索。但我没有得到这段代码的结果。

$Ara = $db->prepare("SELECT * FROM urun_bilgileri WHERE (urun_adi LIKE ? OR urun_kodu LIKE ?)");
$Ara->execute(array('%'.$Gelen.'%'));
while($Liste = $Ara->fetchAll(PDO::FETCH_ASSOC)){;
     $toplam_icerik = $Ara->rowCount();
}

问题出在哪里?

【问题讨论】:

  • 您需要在数组中为查询中的每个参数设置一个值。你有两个参数,只有一个值。尝试将$Ara->execute(array('%'.$Gelen.'%')); 更改为$Ara->execute(array('%'.$Gelen.'%', '%'.$Gelen.'%'));
  • 试试这个$Ara = $db->prepare("SELECT * FROM urun_bilgileri WHERE (urun_adi LIKE :first OR urun_kodu LIKE :second)"); $Ara->bindValue(':first', '%' . $Gelen . '%', PDO::PARAM_STR);$Ara->bindValue(':second', '%' . $Gelen . '%', PDO::PARAM_STR); $Ara->execute(); $data = $Ara->fetchAll();

标签: php mysql sql-like


【解决方案1】:

试试这个,需要传递两个值

$Ara = $db->prepare("SELECT * FROM urun_bilgileri WHERE (urun_adi LIKE ? OR urun_kodu LIKE ?)");
$Ara->execute(array('%'.$Gelen.'%','%'.$Gelen.'%'));
while($Liste = $Ara->fetchAll(PDO::FETCH_ASSOC)){;
     $toplam_icerik = $Ara->rowCount();
}

【讨论】:

  • @TurgutYıldırım 为此,您需要全文搜索,请参阅stackoverflow.com/questions/224714/…
  • 很遗憾,我找不到答案。
  • SELECT * FROM urun_bilgileri WHERE (urun_adi LIKE '%your value%' OR urun_kodu LIKE '%your value%') 在 phpmyadmin 中有效吗?
【解决方案2】:

您在查询中使用了两个占位符,但只传递了一个参数。 必须传递两个参数,例如:

$keyword = '%'.$Gelen.'%';
$Ara = $db->prepare("SELECT * FROM urun_bilgileri WHERE (urun_adi LIKE ? OR urun_kodu LIKE ?)");
$Ara->execute(array($keyword, $keyword));

或者您可以使用命名占位符。例如:

$keyword = '%'.$Gelen.'%';
$Ara = $db->prepare("SELECT * FROM urun_bilgileri WHERE (urun_adi LIKE :urun_adi OR urun_kodu LIKE :urun_kodu)");
$Ara->execute(array(':urun_adi' => $keyword, ':urun_kodu =>$keyword));

【讨论】:

  • 命名占位符必须有不同的名称,:param:param 将不起作用。
  • 有1个搜索框。如果我在此处输入“产品名称”,请查找其列。但如果我在此处输入“product_code”,请搜索“product_code”列。
【解决方案3】:

启用 PHP error_reporting 和 PDO error_reporting,PHP 会在错误消息中告诉您这一点。

error_reporting(-1);
ini_set('display_errors', true);

http://php.net/manual/de/pdo.error-handling.php

【讨论】:

    猜你喜欢
    • 2013-04-27
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    相关资源
    最近更新 更多