jik
Постоялец
- Регистрация
- 11 Мар 2009
- Сообщения
- 243
- Реакции
- 133
Я использую следующие функции для записи массива в таблицу mysql:
Примеры использования.
Добавление строки в таблицу. В таблицу будет вставлена строка, и поля будут заполнены соответствующими значениями из ассоциативного массива.
Изменение строки в таблице. Будет изменена строка (или строки), содержащая в поле name значение 'globoxchange'. Поля будут заполнены соответствующими значениями из ассоциативного массива.
PHP:
function db_connect($server = DB_SERVER, $username = DB_USER, $password = DB_PASS, $database = DB_NAME, $link = 'db_link') {
global $$link;
if (USE_PCONNECT == 'true') {
$$link = mysql_pconnect($server, $username, $password);
} else {
$$link = mysql_connect($server, $username, $password);
}
if ($$link) mysql_select_db($database);
return $$link;
}
function db_array_to_mysql($table, $data, $action = 'insert', $parameters = '', $link = 'db_link') {
global $$link;
reset($data);
if ($action == 'insert') {
$query = 'insert into ' . $table . ' (';
while (list($columns, ) = each($data)) {
$query .= $columns . ', ';
}
$query = substr($query, 0, -2) . ') values (';
reset($data);
while (list(, $value) = each($data)) {
switch ((string)$value) {
case 'now()':
$query .= 'now(), ';
break;
case 'null':
$query .= 'null, ';
break;
default:
$query .= '\'' . addslashes($value) . '\', ';
break;
}
}
$query = substr($query, 0, -2) . ')';
} elseif ($action == 'update') {
$query = 'update ' . $table . ' set ';
while (list($columns, $value) = each($data)) {
switch ((string)$value) {
case 'now()':
$query .= $columns . ' = now(), ';
break;
case 'null':
$query .= $columns .= ' = null, ';
break;
default:
$query .= $columns . ' = \'' . addslashes($value) . '\', ';
break;
}
}
$query = substr($query, 0, -2) . ' where ' . $parameters;
}
return mysql_query($query, $$link);
}
Примеры использования.
Добавление строки в таблицу. В таблицу будет вставлена строка, и поля будут заполнены соответствующими значениями из ассоциативного массива.
PHP:
db_connect();
$sql_data_array['name'] = 'megachange';
$sql_data_array['wmz_wmr'] = $wmz_wmr;
$sql_data_array['wmz_wme'] = $wmz_wme;
$sql_data_array['wmz_wmu'] = $wmz_wmu;
db_array_to_mysql('table_exchange', $sql_data_array);
Изменение строки в таблице. Будет изменена строка (или строки), содержащая в поле name значение 'globoxchange'. Поля будут заполнены соответствующими значениями из ассоциативного массива.
PHP:
db_connect();
$sql_data_array['wmz_wmr'] = $wmz_wmr;
$sql_data_array['wmz_wme'] = $wmz_wme;
$sql_data_array['wmz_wmu'] = $wmz_wmu;
db_array_to_mysql('table_exchange', $sql_data_array, 'update', "name = 'globoxchange'");