Я работаю над «умной» системой кэширования, которая использует pdo и memcache. Тем не менее, я застрял в этой ошибке. Можете ли вы мне помочь?
Мой код:
$session = "a121fd4ztr6"; cache_query("SELECT * FROM `session` WHERE `session` = :session: LIMIT 1;", array(':session:' => $session)); // CACHE QUERY function cache_query($sql, $params) { global $db; global $memcache; $name = 'querycache-'.md5(serialize(array($sql, $params))); $result = $memcache->get($name); if (!$result) { if(!($db)){ require("db.php"); } $stmt = $db->prepare($sql); $exec = $stmt->execute($params); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); $memcache->add($name, $result); } return $result; }
db.php устанавливает соединение с PDO. Соединение Memcache уже настроено. Я всегда получаю следующую ошибку:
Изменить: добавив атрибут режима ошибки, теперь я получаю более подробную ошибку:
Неустранимая ошибка: исключить исключение «PDOException» с сообщением «SQLSTATE [42000]: ошибка синтаксиса или нарушение доступа: 1064 У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с:: LIMIT 1 'в строке 1' в /chroot/home/html/session.php:170
^ Что с этим происходит?