2016-01-12 5 views
0

Im пытается сделать простой Выберите из db и сохраните результаты в массиве.mysqli_query не работает в PHP

  $query = "SELECT ID FROM Publikationen WHERE Personen LIKE '%; " . $autor2 . "%';"; 
      echo($query); 
      // get IDs 
      $res = mysqli_query($link,$query); 
      $i = 0; 
      while ($row = mysqli_fetch_assoc($res)){ 
       echo($row['ID']); 
       $IDarray[$i]= $row['ID'];   
       $i++; 
      } 

$autor2 переменная является имя, как: "Doe, Джон". Код, кажется, не идет в цикле, и mysqli_error после того, как цикл равен нулю, поэтому кажется, что я не получаю результаты от db. Когда im копирует эхо от $query в phpMyAdmin, он отлично работает. Также, когда я использую имя вместо $autor2, он также отлично работает и получает весь мой массив.

+0

Почему вы добавляете дополнительные ';' в свой запрос? Вы должны исправить свой запрос до '$ query = 'SELECT ID FROM Publikationen WHERE Personen LIKE'% $ autor2% '"; ' –

ответ

0

Насколько я могу видеть в SQL-запросе, есть синтаксическая ошибка.

Вы писали:

SELECT ID FROM Publikationen WHERE Personen LIKE '%; " . $autor2 . "%'; 

, но это должно было быть:

SELECT ID FROM Publikationen WHERE Personen LIKE '%" . $autor2 . "%'; 

Надеется, что это помогает!

+0

Точка с запятой необходима, потому что я хочу получить все записи db, где искомое имя не находится на первом и они разделены «;» –

+0

ОК я сделал это с «_» вместо точки с запятой, он тоже работает в моем случае –

+0

Отлично! Я рад, что вы получили свой путь;) –

0

Извлеките semicolon из запроса.

$query = "SELECT ID FROM Publikationen WHERE Personen LIKE '% " . $autor2 . "%'"; 
1
$query = "SELECT ID FROM Publikationen WHERE Personen LIKE '%" . $autor2 . "%'"; 

написать этот код.

0

Просто используйте это -

$query = "SELECT ID FROM Publikationen WHERE Personen LIKE '%$autor2%'"; 

Если точка с запятой важно затем использовать его, но использовать переменную $ author2 только внутри одной кавычки (»«).

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