搜索引擎使用pdo错误


search engine using pdo error

我在一个简单的搜索引擎上工作,我所拥有的工作很好,但我想改变这行代码:

$query = "SELECT * FROM mobiles WHERE (`name` LIKE '%".$search."%') or (`type` LIKE '%".$search."%')";

$query = "SELECT * FROM mobiles WHERE (`name` LIKE '%:search%') or (`type` LIKE '%:search%')";

但由于某些原因,这不起作用

这里是完整的PHP代码
<?php
require("../login/connect.php");
$search = $_GET['query']; 
$query = "SELECT * FROM mobiles WHERE (`name` LIKE '%".$search."%') or (`type` LIKE '%".$search."%')";

$query_params = array(':search' => $_GET['query']);
try
{
  $stmt = $db->prepare($query);
  $result = $stmt->execute($query_params);
}
catch(PDOException $ex)
{
  die("Failed to run query: " . $ex->getMessage());
}
$rows = $stmt->fetchAll();
$min_length = 3;
if(strlen($query) >= $min_length)
{
  echo "<table border='0' width='600' align='center' cellpadding='1'>"; 
  echo "<tr align='center' bgcolor='#03acfa' >
          <td height='35px' width='200px'><b>Mobile Name</b></td>
          <td><b>Mobile Type</b></td>
        </tr>";
    foreach($rows as $row):
    { 
      echo "<tr align='center' bgcolor='#93dafb'>
              <td height='25px'>". $row['name'] ."</td> <td>".$row['type']."</td>
            </tr>" ;
    }
    endforeach; 
}

变化

$query_params = array(':search' => $_GET['query']);

$query_params = array(':search' => "%".$search."%");

现在你可以在查询

上使用它
(`name` LIKE :search) or (`type` LIKE :search)";

绑定不能像那样是局部的。您必须在查询中使用LIKE :search,然后在您要绑定的变量中包含% s