-1

私は select * from x where name 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 に答える