mysql问题(LIKE函数)

时间:2011-06-11 15:00:48

标签: php mysql sql-like

  

可能重复:
  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中给出布尔值

我如何解决此错误?

2 个答案:

答案 0 :(得分: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; 
}

答案 1 :(得分:0)

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