Имеется: Apache 2.4.6, PHP 5.5.4, MySQL 5.1.71. Все это запущено на Windows 7 x64.
Пытаюсь добавить запись в БД таким образом:
function register_subscriber(mysqli $db_link, array $register_data) {
$data['name'] = $register_data['name'];
$data['city'] = $register_data['city'];
$data['email'] = $register_data['email'];
$data['categorie'] = $register_data['categorie'];
$data['institution'] = $register_data['institution'];
$data['languages'] = $register_data['languages'] ? implode('', $register_data['languages']) : NULL;
$data['themes'] = $register_data['themes'] ? implode('', $register_data['themes']) : NULL;
$data['event'] = $register_data['event'] ? implode('', $register_data['event']) : NULL;
$data['learned_from'] = $register_data['learned_from'];
$data['offers'] = $register_data['offers'];
var_dump($data);
echo "<br><br>";
foreach($data as $key => $value) {
if($value) {
$fields[] = $key;
if(is_string($value)) $values[] = "'".$value."'";
else $values[] = $value;
}
}
$fields = implode(', ', $fields);
$values = implode(', ', $values);
var_dump($fields);
echo "<br><br>";
var_dump($values);
echo "<br><br>";
$query = "INSERN INTO subscriber ($fields) VALUES ($values)";
var_dump($query);
echo "<br><br>";
if(!$db_link->query($query)) {
echo "Ошибка добавления подписчика: ".$db_link->error;
}
}
На что получаю следующий вывод:
array(10) { ["name"]=> string(12) "Степан" ["city"]=> string(12) "Москва" ["email"]=> string(15) "stephan@lol.com" ["categorie"]=> string(12) "Степан" ["institution"]=> string(6) "ОГУ" ["languages"]=> string(1) "1" ["themes"]=> string(2) "12" ["event"]=> NULL ["learned_from"]=> string(35) "Из рекламы в прессе" ["offers"]=> int(1) }
string(82) "name, city, email, categorie, institution, languages, themes, learned_from, offers"
string(128) "'Степан', 'Москва', 'stephan@lol.com', 'Степан', 'ОГУ', '1', '12', 'Из рекламы в прессе', 1"
string(245) "INSERN INTO subscriber (name, city, email, categorie, institution, languages, themes, learned_from, offers) VALUES ('Степан', 'Москва', 'stephan@lol.com', 'Степан', 'ОГУ', '1', '12', 'Из рекламы в прессе', 1)"
Ошибка добавления подписчика: 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 'INSERT INTO subscriber (name, city, email, categorie, institution, languages, th' at line 1
Т.е. в тексте ошибки выводится только часть строки запроса. В чем может быть дело?