2015-01-23 3 views
-3
$query = "SELECT * FROM guest WHERE "; 
if ($_POST['include2'] == "yes") { 
$guestNameLast = isset($_POST['guestNameLast']) ? $_POST['guestNameLast'] :  ''; 
$query .= "guestNameLast LIKE '%$guestNameLast%' "; 
$msg .="guest that <b>" . $guestNameLast . "</b><br/>"; 

У вас возникла ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'guestNameLast LIKE' %% '' в строке 1. Как исправить эту ошибку?Ошибка в синтаксисе SQL

+1

печати/журнал $ запрос перед запуском, так что вы можете увидеть, что сгенерированный SQL является – naumcho

ответ

0

ошибка приходит потому, что если данные post отсутствует, то WHERE будет присутствовать это query.Try с -

$query = "SELECT * FROM guest "; 
if ($_POST['include2'] == "yes") { 
$guestNameLast = isset($_POST['guestNameLast']) ? $_POST['guestNameLast'] :  ''; 
$query .= " WHERE "; 
$query .= "guestNameLast LIKE '%$guestNameLast%' "; 
$msg .="guest that <b>" . $guestNameLast . "</b><br/>"; 
+0

Не работает. Есть еще ошибка – Sherylyn

+0

Какая ошибка? –

+0

Он показывает ту же ошибку. – Sherylyn

0

Добавить условие где положение. Так что, если $_POST['guestNameLast'] пуст он win't выдаст ошибку:

$query = "SELECT * FROM guest WHERE 1=1 "; 
if ($_POST['include2'] == "yes") { 
$guestNameLast = isset($_POST['guestNameLast']) ? $_POST['guestNameLast'] :  ''; 
$query .= " AND guestNameLast LIKE '%$guestNameLast%' "; 
$msg .="guest that <b>" . $guestNameLast . "</b><br/>"; 
0

Добавить ИНЕКЕ и И в случае, если условие также проверить, что $ _POST [ 'guestNameLast'] не пусто

$query = "SELECT * FROM guest WHERE 1 "; 
if ($_POST['include2'] == "yes") 
{ 
if(isset($_POST['guestNameLast']) && ($_POST['guestNameLast'] != "")) 
{ 
$guestNameLast = trim($_POST['guestNameLast']); 
$query .= " AND guestNameLast LIKE '%$guestNameLast%' "; 
} 


$msg .="guest that <b>" . $guestNameLast . "</b><br/>"; 
0

Добавь ИНЕК, если только у вас есть guestNameLast

$query = "SELECT * FROM guest"; 

if ($_POST['include2'] == "yes") { 

$guestNameLast = ''; 
if(isset($_POST['guestNameLast']) && trim($_POST['guestNameLast'])) 
{ 
    $guestNameLast = trim($_POST['guestNameLast']); 
    $query .= " WHERE guestNameLast LIKE '%$guestNameLast%' "; 
} 

$msg .="guest that <b>" . $guestNameLast . "</b><br/>"; 
Смежные вопросы