2016-06-30 8 views
0

Ich habe unter Spalten in meiner Mysql DB,String genau in Mysql vergleichen

id, item_link, item_title, item_desc, created_date 

In ITEM_TITLE den Titel des Artikels enthalten, so würde ich prüfen möchte, ob der Titel bereits vorhanden ist oder nicht in der DB mit folgenden Abfrage wie

$title = "Egyptair \'Black Box\' Reveals Smoke Alert on Crashed Jet"; 

SELECT * FROM `rss_feeds` WHERE `item_title` = '$title' 

die oben tiltle schon da in der db ist aber auch wenn durch eine Abfrage wie folgt zu schreiben es gibt

MySQL returned an empty result set (i.e. zero rows). (Query took 0.0004 sec) 

Aber dieser Titel ist in item_title Spalte vorhanden, könnte mir jemand vorschlagen, wie man die Zeichenfolge vergleicht und die Antwort mit Mysql Query abrufen.

+0

Können Sie die Datenprobe teilen bilden, die vorhanden ist? Ich vermute, dass es etwas mit einfachen Anführungszeichen zu tun hat. –

+0

Versuchen Sie LIKE-Abfrage. –

+1

Sie müssen die einfachen Anführungszeichen in der doppelten Anführungszeichenfolge nicht umgehen. – bzeaman

Antwort

1

Bessere Verwendung binden und Vorbereitung dafür vorbereiten. Es wird Ihre Zeichenfolge entkommen und verhindern, dass Sie SQL-Injection

$title = "Egyptair \'Black Box\' Reveals Smoke Alert on Crashed Jet"; 
$stmt = $mysqli->prepare("SELECT * FROM `rss_feeds` WHERE `item_title` =?"); 
$stmt->bind_param('s', $title); 
/* execute prepared statement */ 
$stmt->execute(); 

lesen http://php.net/manual/en/mysqli-stmt.bind-param.php