Drupal использует {}
вокруг имен таблиц , чтобы иметь возможность выполнять некоторые манипуляции с этими именами - например, префиксировать их, если вы настроили его для этого.
Таким образом, вы не должны использовать {}
в своем запросе - за исключением имен таблиц arround, конечно.
Вместо того, чтобы жестоко вводить вашу сериализованную строку в запрос SQL, вы должны использоватьзаполнители в нем - и передать соответствующие значения в db_query()
, который позаботится о том, чтобы избежать того, что должно быть:
$sldata = serialize($aa);
$sql = "insert into {test} (pval) values('%s')";
db_query($sql, $sldata);
Здесь:
- Поскольку поле
pval
является строкой в базе данных, я использовал заполнитель% s - И первое значение было передано
db_query()
(после самого SQL-запроса, конечно) * drupal будет введен для замены этого первого (и только здесь) заполнителя.
И, для получения дополнительной информации, вы можете взглянуть на слой абстракции базы данных .