Я вставляю данные из файла с 18 столбцами, таблица, в которую я хотел бы вставить его, содержит 20 столбцов. 2 из этих столбцов уже содержат данные. Как мне вставить файл в таблицу без перезаписи существующих данных.mysql, заменяющий столбцы в таблице
приведен пример кода. примечание $line .= ',,'
добавляет два столбца, потому что обновление не будет работать, если столбцы не совпадают с точным размером таблицы в 20 столбцов. Но $line .= ',,'
перезаписывает уже вставленные данные. Что я делаю?
$fcontents = file('data.txt');
if(mysql_error())
echo mysql_error();
for($i=0; $i<sizeof($fcontents); $i++)
{
//strip out double quotes
$line = ereg_replace('"','',trim($fcontents[$i]));
$line .= ',,';
//strip replace semi-colon with blank spaces
$line = ereg_replace(';',' ',$line);
//single quote in parts records breaks replace code, removing single quote...
$line = ereg_replace("'",'',$line);
//breaks apart the tab delimited row into a array
$arr = explode(",", $line);
//add comma deliminted data back
mysql_query("REPLACE INTO products VALUES ('". implode("','", $arr) ."')");
}
Как указать имена столбцов в implode? – payling
Они идут между «продуктами» и «ЦЕННОСТЯМИ», нет необходимости модифицировать implode! – Andomar
после ввода имен столбцов и удаления строки. = ',,' У меня все еще есть проблемы с заменой значений. Вы уверены, что мне не нужно ничего делать с помощью взрыва? mysql_query ("REPLACE INTO products (col1, col2, col3) VALUES (" ". Implode (" ',' ", $ arr)." ') "); это то, что я изменил. – payling