2017-01-31 8 views
-2

SQLクエリの実行中に次のエラーが表示されます。MySQLを使用したクエリの構文エラーの取得

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's%' ORDER BY gallery_id DESC' at line 1

私は以下の私のクエリを説明しています。ここで

$searchKey="Celli's" 
$keyword = '%'.$searchKey.'%'; 
$query = "SELECT * from db_gallery WHERE description LIKE '" . $keyword . "' 
      ORDER BY gallery_id DESC "; 

'sは、任意のキーワードの投げエラーで来ているとき、私は値を検索する必要がありますが。私を助けてください。

searchKey = 'something' 
searchKey = searchKey.replace("'", "\\'"); 

が今、あなたのクエリでSEARCHKEYを使用します。

+3

検索文字列に '' 'があるので、クエリを実行しようとすると構文エラーが返されます。これはあなたの質問を破るためです。あなたのキーワードに 'mysql_real_escape_string'を使用してください。 – KinjalMistry

答えて

3

$searchKeyには'が含まれていますので、実際には3つの'があります。対応していません!

あなたが最初に脱出すべきである(両方とも大丈夫です):

$mysqli = new mysqli("host", "user", "pass", "db"); 
$searchKey = $mysqli->real_escape_string($searchKey); 

$mysqli = mysqli_connect("host", "user", "pass", "db"); 
$searchKey = mysqli_real_escape_string($mysqli, $searchKey); 

参照:http://php.net/manual/en/mysqli.real-escape-string.php

+0

'$ searchKey'の値が空白を示しています。 – subhra

+0

@subhra申し訳ありませんが、私の更新 –

+0

@subhraを参照してください.DBを接続してクエリを送信する他の方法を使用している場合は、その文字列をエスケープする方法を使用してください。 –

0

はあなたのような"文字をエスケープする必要があります。

これらの文字をエスケープするには、クエリエスケープ文字列関数を使用します。

+0

検索キーワードの値は 'celliまたはcelli's'のようになります。 – subhra

0

変更$ SEARCHKEY = "CELLIの"

$ SEARCHKEY = "CELLI \ 'sの" と

(あなたはバックスラッシュがありません)

-1

以下のクエリで試してみてください。

$keyword = '%Celli''s%'; 
"SELECT * from db_gallery WHERE description LIKE ".$keyword." ORDER BY gallery_id DESC"; 
0

「あなたがそれをエスケープする必要があるので、$ SEARCHKEYに含まれているがあり、mysqliのエスケープ文字列を使用します。

注:場合mysqli_real_escape_stringが接続

$keyword="Celli's" 
$con=mysqli_connect("localhost","root","root","test");//procedural 
$searchKey = mysqli_real_escape_string($con, $keyword); 

echo $searchKey;// use this in sql 

として最初の引数を期待しますその後、オブジェクト型を使用している:

$con=new mysqli("localhost","root","root","test");//procedural 
    $searchKey = $mysqli->real_escape_string($keyword); 
    echo $searchKey;// use this in sql 
0
$searchKey="Celli\'s" 
$keyword = '%'.$searchKey.'%'; 
$query = "SELECT * from db_gallery WHERE description LIKE '" . $keyword . "' 
      ORDER BY gallery_id DESC "; 

これを試してみてください。

+0

@subhra試してみてください –