2013-09-02 3 views
0

У меня есть следующая проблема: я хочу что-то вставить в базу данных SQL, но получаю синтаксическую ошибку. Это код:.Вставить в базу данных не работает для css-подобной строки

mysql_query("INSERT INTO wp_postmeta (meta_key, post_id, meta_value) VALUES ('_product_attributes','$postid','a:1:{s:7:"pa_maat";a:6:{s:4:"name";s:7:"pa_maat";s:5:"value";s:0:"";s:8:"position";s:1:"5";s:10:"is_visible";i:0;s:12:"is_variation";i:1;s:11:"is_taxonomy";i:1;}}')");

Я знаю, что есть что-то делать с записью meta_value, но я не знаю, как поставить его в

Заранее спасибо

EDIT: Это сообщение об ошибке:

Анализировать ошибка: синтаксическая ошибка, неожиданный T_STRING

+3

избежать двойных кавычек внутри запроса –

+5

Нет! Используйте параметры. – usr

+0

Не могли бы вы привести пример? – bashoogzaad

ответ

0

Для успешного выполнения используйте формат запроса привязки в этом случае, а не прямое присвоение значения.

+0

Хорошо, я сделал следующее: '$ stmt = $ dbh-> prepare (" INSERT INTO wp_postmeta (meta_key, post_id, meta_value) VALUES (: meta,: postid,: metav) "); $ stmt -> bindParam (': meta', '_product_attributes'); $ stmt -> bindParam (': postid', $ postid); $ stmt -> bindParam (': metav', 'a: 1: {s: 7: "pa_maat"; a: 6: {s: 4: "name"; s: 7: "pa_maat"; s: 5 : "значение"; s: 0: ""; s: 8: "положение"; s: 1: "5"; s: 10: "is_visible"; я: 0; s: 12: "is_variation"; я: 1; s: 11: "is_taxonomy"; я: 1;}} '); $ stmt -> execute(); ' это дает ошибку: Позвоните в функцию-член prepare() на не-объекте – bashoogzaad

+0

как вы создаете $ dbh ?? Пожалуйста, проверьте http://docs.php.net/manual/en/pdo.connections.php – nks

+0

Вот как: $ dbh = new PDO ('mysql: host = $ dbhost; dbname = test', $ dbuser, $ dbpass); – bashoogzaad

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