2014-09-07 4 views
1

я функция вызывается:mysqli_query() не производит ожидаемых результатов,

function getUnitID($unit_name) { 
$con = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); 
echo '<br/>'.$query = ' SELECT id, unit_name FROM units WHERE unit_name LIKE "'.trim($unit_name).'"'.'</br>'; 
$result = mysqli_query($con, $query); 
$id = ''; 
echo 'here'; 
while ($row = mysqli_fetch_assoc($result)) { 
    echo 'yup'; 
    $id = $row['unit_name']; 
    if (strlen($id) > 0) 
     echo 'nothing'; 
    else echo 'something!'; 
    var_dump($row); 
} 
mysqli_close($con); 
return $id; 
} 

Мой вывод:

SELECT id, unit_name FROM units WHERE unit_name LIKE "a name here" 
here 

Однако, когда я запускаю его в моей базе данных я получаю строку обратно.

Отметьте, что линия echo 'yup'; ничего не выводит. Я предполагаю, что что-то с $result = mysqli_query($con, $query); испорчено, но я знаю, что $con в порядке, потому что он работает в других местах.

+2

либо использовать 'LIKE' с групповыми символами, или просто использовать' = ' – 2014-09-07 20:24:30

+0

@ Дагон Я просто экспериментировал. Я знаю разницу. –

+0

, поэтому приведенный выше код является действительным, что вы используете или нет? – 2014-09-07 20:27:13

ответ

3

Я думаю, что проблема здесь:

echo '<br/>'.$query = ' SELECT id, unit_name FROM units WHERE unit_name LIKE "'.trim($unit_name).'"'.'<br />'; 

Сделать это так, потому что я уверен, что вы запутались в $ запрос:

$query=' SELECT id, unit_name FROM units WHERE unit_name LIKE "'.trim($unit_name).'"'; 
echo '<br/>'.$query.'<br />'; 

Я не уверен, что вы ищу именно выбрать, но у меня есть другая догадка, что вы хотите сделать это:

$query=' SELECT id, unit_name FROM units WHERE unit_name LIKE "%'.trim($unit_name).'%"'; 
echo '<br/>'.$query.'<br />'; 
+0

Спасибо! Я забыл, что публикация в StackOverflow означает, что моя техника также будет критически оценена. Я буду использовать '=' в отличие от 'LIKE'. Я только что опубликовал код, который был у меня в настоящее время, который удалил только маски. И да @ Tieson T.,
была опечаткой. –

Смежные вопросы