【问题标题】:PDO SELECT LIKE Is Not finding anythingPDO SELECT LIKE 没有找到任何东西
【发布时间】:2015-04-13 08:23:15
【问题描述】:

嘿,伙计们,所以我试图找到任何标题中包含天使之类的东西,但由于某种原因它没有返回任何内容,例如我得到了一个带有

的电影标题

黑衣女人 2:死亡天使 (2014)

但它一直说没有找到任何帮助会很棒谢谢!

<?php
require_once("../connection/config.php");
global $instance;

$search="Angel";
$query = $instance->prepare("select * from movies where title LIKE '%$search%'  LIMIT 0 , 10");
$query->bindValue(1, "%$search%", PDO::PARAM_STR);
$query->execute();

         if (!$query->rowCount() == 0) {
                echo "Search found :<br/>";
                echo "<table>";
                echo "<tr>Movies</tr>";
            while ($results = $query->fetch()) {
                echo "<tr>";
                echo $results['title'];
                echo "</tr>";
            }
                echo "</table>";
        } else {
            echo 'Nothing found';
        }
?>

【问题讨论】:

  • '%search%' 替换为?
  • 试了没用。

标签: php pdo


【解决方案1】:

这应该是 -

$query = $instance->prepare("select * from movies where title LIKE :val  LIMIT 0 , 10");
$query->bindValue(':val', "%$search%", PDO::PARAM_STR);

【讨论】:

【解决方案2】:

我认为绑定时不能在引号中插入变量,否则它将被转换为字符串。我相信您需要事先添加通配符。

$search="%Angel%";
$query = $instance->prepare("select * from movies where title LIKE ? LIMIT 0 , 10");
$query->bindValue(1, $search, PDO::PARAM_STR);

【讨论】:

  • 遗憾的是它没有工作 :( 仍然说什么也没找到,谢谢你的尝试。
  • 一定是因为您的count 不是您所期望的。试试这个,$count = $query-&gt;rowCount(); 然后回显它。
  • 得到回显返回 0。
  • 它可能返回 0,因为它是 false 意味着查询失败。
  • 我刚刚尝试了一些查询我删除了搜索使其成为 $search = "%%";它返回了我添加的第一部电影......
【解决方案3】:

试试

$query = $instance->prepare("select * from movies where title LIKE :search LIMIT 0, 10"); $query->bindParam(':search, '%'.$search.'%'); $query->execute();

【讨论】:

  • 任何错误或只是空返回?请启用查询日志记录 SET global general_log = 1;设置全局 log_output = '表';并检查生成的 SQL
猜你喜欢
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多