我试图从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%”];但它们似乎都不起作用。
感谢您的帮助。
答案 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);