PHP喜欢Wildcard无法正常工作

时间:2013-01-14 01:39:30

标签: php sql phpmyadmin

我试图从x中选择*,其中名称为LIKE y。我非常熟悉下面的代码。

SELECT * FROM ` arm` WHERE `u_fname` LIKE 'k%'

但是,我试图在服务器脚本上运行它,我不知道在哪里放“%”导致它导致错误。这是服务器代码的一部分,这个代码与'='一样工作,但是当我使用LIKE时出错,因为我不确定如何在这里使用“%”

   elseif(empty($_POST["f_name"]) &&  !empty($_POST["l_name"])) 
{ 

 $l_name=$_POST["l_name"];
$stmt = $this->db->prepare('SELECT id, image, l_name, f_name, status  FROM table1  WHERE l_name =?');
           $stmt->bind_param("s",$l_name);
         $stmt->execute();
         $stmt->bind_result($id,$image,$l_name,$f_name,$status);   

我尝试了SELECT id,image,l_name,f_name,status FROM table1 WHERE l_name =?%,我也试过把$ l_name = $ _ POST [“l_name%”];但它们似乎都不起作用。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您的代码没有使用'LIKE' 您的代码是:SELECT id,image,l_name,f_name,status FROM table1 WHERE l_name =? 尝试

$stmt = $this->db->prepare('SELECT id, image, l_name, f_name, status  FROM table1
WHERE l_name LIKE ?'); 
$stmt->bind_param("s",$l_name.'%');

或尝试

$stmt = $this->db->prepare('SELECT id, image, l_name, f_name, status  FROM table1
WHERE l_name LIKE CONCAT(?, "%")');
$stmt->bind_param("s",$l_name);