[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не работает запрос!!! Очень надо
kent666
Не могу ничего понять запрос через консоль работает нормально, а через php выдает ошибку
запрос
TRUNCATE TABLE `images`;
INSERT INTO `images` (`id`, `date`, `description`, `name`, `main`, `section_id`) VALUES ('7', '2012-01-12 10:33:18', 'Четвертый рисунок', '1326357198', NULL, '1');
INSERT INTO `images` (`id`, `date`, `description`, `name`, `main`, `section_id`) VALUES ('5', '2012-01-10 14:09:12', 'Второе изображение', '1326197352', NULL, '1');

Выдает ошибку типа
Цитата
2012-01-24 04:40:43 MySQL 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 'INSERT INTO `images` (id, date, description, name, main, section_id) VALUES ('7'' at line 2
kent666
Или хоть подскажите как я могу проверить в чем действительно проблема!
Обидно что в консоли все работает нормально! А как только запускаешь скрипт выдает ошибку!
kent666
Может проблема в ; в конце каждой строки?
redreem
всмысле это прям в php чтоли? smile.gif

http://php.su/functions/?cat=mysql
kent666
Нашел причину
Цитата
mysql_query() посылает запрос активной базе данных сервера, на который ссылается переданный указатель. Если параметр link_identifier опущен, используется последнее открытое соединение. Если открытые соединения отсутствуют, функция пытается соединиться с СУБД, аналогично функции mysql_connect() без параметров. Результат запроса буфферизируется.

    Замечание: Строка запроса НЕ должна заканчиваться точкой с запятой.

Ну а как можно выполнить запрос состоящий из нескольких запросов
(ну кроме того как записать все запросы в массив и выполнять их по очереди)
kent666
В общем я долго думал и решил что так сойдет :D
вот скрипт резервного копирования и восстановления БД
  $db = new db($db_host, $db_user, $db_password, $db_name);

$dump_dir = SVV_ROOT ."setup/dump"; // директория, куда будем сохранять резервную копию БД


if($ok)
{
$sqlFile = SVV_ROOT ."setup/dump/". time() .".sql";
$res = $db->mysqlQuery("SHOW TABLES");
$query = array();

while( $table = mysql_fetch_row($res) )
{
$query[]= "TRUNCATE TABLE `". $table[0] ."`";
$res1 = $db->mysqlQuery('SHOW COLUMNS FROM '. $table[0]);
$c = array();
if(mysql_num_rows($res1) > 0)
{
while($row = mysql_fetch_assoc($res1))
{
$c[] = '`'. $row['Field'] .'`';
}
$column = implode(', ', $c);
}

$res2 = $db->mysqlQuery('SELECT * FROM `'.$table[0].'`');
if(mysql_num_rows($res2) > 0)
{
while ($row = mysql_fetch_assoc($res2))
{
$val = array();
foreach ($row as $field )
{
if (is_null($field)){
$field = "NULL";
}else{
$field = "'".mysql_escape_string( $field )."'";
}
$val[] = $field;
}
$query[]= "INSERT INTO `".$table[0]."` (". $column .") VALUES (". implode(', ', $val) .")";
}
}
}

file_put_contents($sqlFile, serialize($query));
reDirect();
}
if($edit)
{
$query = unserialize(file_get_contents($sqlFile = SVV_ROOT ."setup/dump/1327416535.sql"));
foreach($query as $val){
$db->mysqlQuery($val);
}
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.