Простите, если у меня может быть какая-то фундаментальная ошибка здесь. Я предполагаю, что есть кое-что простое, что я пропускаю. Я хочу хранить обновления Twitter в базе данных только с несколькими полями: индекс автоинкремента, опубликованное время, актуальное обновление статуса и идентификатор пользователя, на который идет обновление.
Я просто сохраняю это последнее поле, чтобы предоставить метод фильтрации ответов.
Но похоже, что мой код SQL выдает ошибку. На момент написания этой статьи SQL правильно вставил два последних обновления, которые оба являются ответами для другого пользователя и, следовательно, содержат данные в поле in_reply_to_user_id. Но при третьем обновлении, на которое никто не отвечает, я получаю следующую ошибку:
Номер ошибки: 1064
У вас ошибка в синтаксисе SQL;
проверьте руководство, которое соответствует
ваша версия сервера MySQL для
правильный синтаксис для использования рядом с ')' в строке 1
INSERT IGNORE INTO обновления (время,
статус, пост, ответ) ЦЕННОСТИ
(1260070319, «Я думаю, Джонни Кэш знал
о чем он говорил в этом \ "А
Мальчик по имени Су \ "песня. Этот парень оба
fast и mean. ',' 6389320556 ',)
API Twitter не устанавливает значения по умолчанию для этого параметра. Я пробовал тот же запрос с параметром «favourited», и он правильно помечал каждую строку как «false» в моей базе данных. Поэтому я предполагаю, что моя проблема заключается в вставке пустой строки.
Для чего это стоит, вот мой метод CodeIgniter:
function insert_tweet($tweet){
foreach($tweet as $t) {
$when = strtotime($t->created_at);
$status = $t->text;
$postid = $t->id;
$reply = $t->in_reply_to_user_id;
$sql = 'INSERT IGNORE INTO updates (time, status, postid, reply) VALUES (?, ?, ?, ?)';
$this->db->query($sql, array($when, $status, $postid, $reply));
}
}
Любая помощь, которую вы могли бы оказать, была бы великолепна! Я надеюсь, что предоставил достаточно информации!
Дополнительная информация : Следует также отметить, что CodeIgniter выдает следующую ошибку:
Произошла ошибка PHP
Серьезность: 4096
Сообщение: объект класса stdClass
невозможно преобразовать в строку
Имя файла: database / DB_driver.php
Номер строки: 598
В случае, если это доказывает, что какая-то особая CI виновата.