Помощник
|
INSERT FROM ARRAY, как работает? |
Banderas
|
Сообщение
#1
|
||
|
|
||
|
|||
ZiTosS |
12.3.2011, 13:29;
Ответить: ZiTosS
Сообщение
#2
|
|
Banderas, ещё бы ты чего не почитал в документации к запросам баз данных из foxpro...
Читай книжки именно по MySQL, т.к. SQL это стандарт, а в разных СУБД помимо стандартных команд добавлены свои. Как ,например, в FoxPro присутствуют своя СУБД дополненная синтаксисом, который ты привел. |
|
|
Banderas
|
Сообщение
#3
|
|
Лёха, сенкс, а я уже подумал что есть халява)))
Опять таки использую массивы для сокращения кода. Я те писал в личку, но ты пропал. Так что выставляю проблему на общий осмотр =) Вставляю в БД данные из массива [php]mysql_query("INSERT INTO notes (title,meta_k, meta_d, text) VALUES (title='$data[0]', meta_k='$data[1]', meta_d='$date[2]', text='$data[3]')", $db) or die('ошибка БД');[/php] Ошибок нет, но в БД заносятся нули. В чем проблема? Или лучше массив не использовать? |
|
|
ZiTosS |
18.3.2011, 18:11;
Ответить: ZiTosS
Сообщение
#4
|
|
Banderas, почитай все имена переменных и всё поймешь. Хоть бы распечатал и посмотрел перед этим.
Вообще можно сделать намного проще запрос 1) Если нам не важны имена полей и мы знаем последовательность и какие поля имеют значения по умолчанию: [php]$data = array( "'login'", // логин "'password'", //пароль 0, //активность ... ); $datas = implode(",", $data); // соединяем данные в строку mysql_query("INSERT INTO table VALUE({$datas})");[/php] Если нужно перечислить поля, то: [php]$data = array( 'login' => "'login'", // логин 'passowrd' => "'password'", //пароль 'active' => 0, //активность ... ); $fields = implode(",", array_keys($data)); // соединяем поля в строку $datas = implode(",", $data); // соединяем данные в строку mysql_query("INSERT INTO table({$fields}) VALUE({$datas})");[/php] Не забываем, что строковые данные в БД помещаются в кавычки. Поэтому перед объединением нужно на концах строковых данных добавить одинарные кавычки. Поблагодарили: (0) |
|
|
Banderas
|
Сообщение
#5
|
|
я сделал так
[php]for ($i=0;$i<count($data);$i++) { $data[$i] = '\''.$data[$i].'\''; } $datastr = implode(',', $data); mysql_query("INSERT INTO notes (title, meta_k, meta_d, text) VALUES ($datastr)", $db) or die('ошибка БД');[/php] |
|
|
ZiTosS |
22.3.2011, 20:53;
Ответить: ZiTosS
Сообщение
#6
|
|
|
Banderas, каждый вариант имеет право на жизнь
Тему закрываю
|
|
|
||
|
Текстовая версия | Сейчас: 25.4.2024, 10:16 |