У меня проблема с PDO и sqlite3. При попытке объединения таблиц я получаю сообщение об ошибке:
object(PDO)#1 (0) { } {"error":true,"message":"SQLSTATE[HY000]: General error: 1 near \u0022FROM\u0022: syntax error"
мое соединение и SQL-запрос выглядит следующим образом. Возвышенный текст 2 тоже не красит JOIN
как и другие
$objDb = new PDO('sqlite:../dbase/shopping-list');
var_dump($objDb);
$objDb -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT `i`.*,
`t`.`name` AS `type_name`
FROM `items` `i`
JOIN `types` `t`
ON `t`.`id` = `i`.`type`
ORDER BY `i`.`date` ASC";
$result = $objDb->query($sql);
if(!$result) {
throw new PDOException("The result returned no object");
}
Я следую учебному пособию, и он может использовать это утверждение с Mac. Я использую Arch Linux, но я не думаю, что это связано.
Когда я проверяю базу данных sqlite с помощью cli, я могу получить types
Таблица :
sqlite> SELECT * FROM `types`;
1|Qty
2|Kg
Есть ли способ выполнить этот запрос?
редактировать: я изменил БД и удалил backticks … Теперь я могу получить элементы, но все же у меня есть ошибка, и они не работают внутри моего angularjs внешнего интерфейса.
object(PDOStatement)#3 (1) { ["queryString"]=> string(37) "SELECT * FROM types ORDER BY id" } {"error":false,"items":[{"id":"1","item":"Butter","qty":"1","type":"1","done":"0","date":"2014-10-06 02:45:51","type_name":"Qty"}],"types":[{"id":"1","name":"Qty"},{"id":"2","name":"Kg"}]}
здесь правильный запрос SQL с JOIN
$sql = "SELECT item.* ,
t.name AS type_name
FROM items item
INNER JOIN types t
ON t.id = item.type
ORDER BY item.date ASC";
это мое ссылка select.php
Задача ещё не решена.
Других решений пока нет …