-1

我试图从 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%"]; 但它们似乎都不起作用。

谢谢你的帮助。

4

1 回答 1

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);
于 2013-01-14T01:46:33.713 回答