Подскажите пожалуйста как правильно составить запрос в БД?
<?php
global $user;
$userid = $user->uid;
for($i=0;$i<=round($NumberDays);$i++)
{
foreach($NamesArray as $Name)
{
$Query_NewTask[]="('".($DateStart+86400*$i)."', '".$form_state['values']['Numbe']."', '".trim($Name)."', '".$userid."')";
}
}
$result = db_query("INSERT INTO {xxx} (Date, Number, Name, IDUser) VALUES %b", implode(',', $Query_NewTask));
?>
Результат отправки запроса к БД
<?php
query: INSERT INTO xxx (Date, Number, Name, IDUser) VALUES '(\'1284573600\', \'6666\', \'BigsHunter\', \'1\'), (\'1284573600\', \'6666\', \'MyGod\', \'1\'), (\'1284573600\', \'6666\', \'Ishnnn\', \'1\'), (\'1284573600\', \'6666\', \'Keleginn\', \'1\'), (\'1284573600\', \'6666\', \'Andromargas\', \'1\'), (\'1284660000\', \'6666\', \'BigsHunter\', \'1\'), (\'1284660000\', \'6666\', \'MyGod\', \'1\'), (\'1284660000\', \'6666\', \'Ishnnn\', \'1\'), (\'1284660000\', \'6666\', \'Keleginn\', \'1\'), (\'1284660000\', \'6666\', \'Andromargas\', \'1\'), (\'1284746400\', \'6666\', \'BigsHunter\', \'1\'), (\'1284746400\', \'6666\', \'MyGod\', \'1\'), (\'1284746400\', \'6666\', \'Ishnnn\', \'1\'), (\'1284746400\', \'6666\', \'Keleginn\', \'1\'), (\'1284746400\', \'6666\', \'Andromargas\', \'1\')'
error:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''(\'1284573600\', \'6666\', \'BigsHunter\', \'1\'), (\'1284573600\', \'6666\', \' at line 1
?>
Как я понимаю в Drupal`е закавычивать параметры при создания запроса к БД ненужно, Drupal самостоятельно это выполнить использую шаблоны для подстановки. Для создания шаблона автоматически, нужно использовать функцию db_placeholders(). Но как сделать чтобы при создание шаблона создавалась ещё скобки ограничивающие параметры вставляемой строки? Количество строк вставляемых в таблицу заранее не известно.
На данный момент вижу только следующий вариант: После определение количества вставляемых строк дописывать требуемое количество (db_placeholders()), (db_placeholders()) и т.д.
Либо ваши предложения по реализации данного запроса?
Комментарии
Делать вам нефиг, посмотрите ядрёные модули, всё поймёте
http://drupaldance.com/lessons/secure-code-database-layer
От инекций защита есть, а что еще вам надо?
Я вас не совсем понял. Просто я на данный момент из реляционок наоборот только с MySQL работал.
Что вам мешает сделать вот так:
$static_val0,
$static_val1,
$static_val2,
$static_val3,
$static_val4,
$static_val5,
$static_val6,
$static_val7,
$dynamic_val0,
$dynamic_val1,
);
db_query("INSERT INTO {some_table} VALUES (%d, %d, %d, %d, %d, %d, %d, %d, %d, %d)", $args);
?