У меня другая проблема с одной из моих функций контроллера. Я написал функцию, которая обновляет некоторые поля из моей базы данных. Я беру содержимое из декодированного json_file, и после того, как я захватил данные, я снова закодировал их, чтобы я мог сохранить их в своей базе данных. Я получаю некоторые ошибки, которые я не понимаю.
Моя функция
public function admin_update_rulings()
{
$this->loadModel('Magicsets');
$this->loadModel('Cards');
$this->autoRender = false;
$code = 'LEA';
$cards = file_get_contents('http://mtgjson.com/json/' . $code . '-x.json');
$decodedcards = json_decode($cards);
$this->Card->query("SET CHARACTER SET utf8");
foreach ($decodedcards->cards as $cards) {
$mvid = $cards->multiverseid;
$legal = json_encode($cards->legalities);
$rulings = '';
if (!empty($cards->rulings)) {
$rulings = json_encode($cards->rulings);
} else {
$rulings = json_encode('leeg');
}
$this->Cards->updateAll(
array('rulings' => $rulings), //fields to update
array('multiverseid' => $mvid) //condition
);
}
}
Сообщение об ошибке, которое я получаю:
Ошибка базы данных
Ошибка: SQLSTATE[42000]: Синтаксическая ошибка или нарушение прав доступа: 1064 Ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, на предмет правильного синтаксиса для использования рядом с «[{date:2008-08-01,текст:Эта карта была возвращена к своим первоначальным функциям» в строке 1
SQL-запрос: ОБНОВЛЕНИЕ
magicmm
.cards
ASCards
SETCards
.rulings
= [{date:2008-08-01,text:Эта карта была возвращена к своей первоначальной функциональности. Если он зачаровывает артефакт, который уже является существом, его сила и выносливость не изменятся.},{date:2008-08-01,text:Перманент, не являющийся существом, который превращается в существо, может атаковать, и его {T} способности могут быть активированы только в том случае, если контролирующий его игрок постоянно контролировал этот перманент с начала своего последнего хода. Неважно, как долго перманент был существом.}] ГДЕmultiverseid
= 96
Примечание. Если вы хотите настроить это сообщение об ошибке, создайте app/View/Errors/pdo_error.ctp.
Любая помощь в решении этой проблемы будет принята с благодарностью :-).