mysql问题(LIKE函数)[重复]

问题描述 投票:0回答:2

可能重复: mysql_fetch_array() expects parameter 1 to be resource, boolean given in select

我正在运行查询:

$result = mysql_query("SELECT *, CONCAT(fname, ' ', lname) AS fullname FROM `users` WHERE fullname LIKE '%$keyword%' ");

while ($myrow = mysql_fetch_array($result)) {
  $fname = $myrow['fname'];
  echo $fname;
}

fullname由两个用空格分隔的名称组成。 我有一个错误:

警告:mysql_fetch_array()期望参数1是资源,第8行的localhost \ search.php中给出了boolean

我怎么能解决这个错误?

php mysql sql-like
2个回答
1
投票

好吧,我想我看到了你的错误。在MySQL中,您不能在where子句中使用命名列(fullname)。因为当执行where子句时,尚未提取行。以下不应该导致任何问题:

$result = mysql_query("
  SELECT 
    *, 
    CONCAT(fname, ' ', lname) AS fullname 
  FROM users
  WHERE 
    CONCAT(fname, ' ', lname) LIKE '%$keyword%'
"); 

while ($myrow = mysql_fetch_array($result)) { 
   $fname = $myrow['fname']; echo $fname; 
}

0
投票

为什么不对此表使用全文?如果您需要在表格中搜索记录,则在此模式下,全文搜索功能非常强大且速度更快。

© www.soinside.com 2019 - 2024. All rights reserved.