2013-12-03 3 views
0

Я не могу понять простейшую вещь. Пробовал разные вещи, но не успел. Я хочу просто выбрать из таблицы команду с определенным именем. Этот код вернет мне только заголовок таблицы и ничего не напечатает, как будто мой запрос пуст.SQLite3 Выберите, где строка запроса

Я пробовал менять кавычки по-другому, но это либо дало бы мне ошибку, либо ничего не напечатало.

SELECT * from League where Name='AS Roma' 

SELECT * from League where Name=AS Roma 

SELECT * from League where Name="AS Roma" 

У кого-нибудь есть ключ?

 $db = new SQLite3('test.db'); 
    $results = $db->query('SELECT * from League where Name="AS Roma"'); 

    echo "<table border='1'>"; 
    echo "<tr>"; 
    echo "<th>Position</th><th>Club Name</th><th>G</th><th>W</th><th>D</th><th>L</th><th>GF</th><th>GA</th><th>P</th>"; 
    echo "</tr>"; 

    while ($row = $results->fetchArray()) { 
     echo "<tr>"; 
     echo "<td>", $row[0], "</td><td>", $row[1],"</td>", "<td>", $row[2], "</td><td>", $row[3],"</td>","<td>", $row[4], "</td><td>", $row[5],"</td>", "<td>", $row[6], "</td><td>", $row[7],"</td>", "<td>", $row[8], "</td>"; 
     echo "</tr>"; 
    } 
    echo "</table>"; 
    echo '<br>'; 
+1

У вас есть все данные в Вашей базе данных со значением '' AS Roma''? Запрос, возвращающий 0 строк, не является ошибкой. –

+0

Да, конечно, это не проблема. Я знаю, так как он возвращает пустое, это означает, что он не может найти его, но он есть. Я думал, что у меня проблема с синтаксисом – user2925006

+0

, если я наберу непосредственно в SQLite Manager после SELECT * FROM League, где Name = 'SS Lazio', это все равно даст мне пустое дело, но оно есть – user2925006

ответ

0

Я хотел бы предложить использовать SQLite3 :: подготовиться.

$stmt = $db->prepare('SELECT * from League where Name LIKE :name'); 
$stmt->bindValue(':name', 'AS Roma', SQLITE3_TEXT); 

$result = $stmt->execute(); 
while ($row = $result->fetchArray()) { 
    ... 
} 
+0

Я не знаю почему, но та же проблема возникает. Он печатает только заголовок таблицы, никаких фактических данных – user2925006

-2

Возможно, вы захотите обменять свои кавычки и использовать обратные ссылки.

До:

$results = $db->query('SELECT * from League where Name="AS Roma"'); 

После:

$results = $db->query("SELECT * from League where Name=`AS Roma`"); 
+1

попробовал это => QLite3 :: query(): Не удалось подготовить оператор: 1, нет такого столбца: AS Roma – user2925006

+0

Backticks обозначает * имя поля *; цитаты обозначают * строку *. –

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