Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Ошибка запроса Mysql


Автор: xarakiry 28.6.2008, 14:27
Не пойму..загоняю запрос в phpmyadmin всё прокатывает нормально данные добавляются, а вставляю в mysql_query выдайт ошибку....подскажите плиззз...

Код


$query = "START TRANSACTION; 
    INSERT INTO museum_base (unical_number,dk_nomre,sehra_qeydi,diger_nomre,adi,tapildigi_yer,tapildigi_vaxt,
tapan_shexs,tesviri,dovrleshdirilmesi,oyrenilmesi,hundurluyu,eni,uzunlugu,chekisi,
diametr,agiz,govde,oturacaq,terkibi,elave_qeydiler,veziyyati,shkafda_yer,tertib_eden,
mezeya_tehvil_ver_vaxt,picture1,picture2,picture3,save_date) VALUES 

('$unical_number','$dk_nomre', '$sehra_qeydi','$diger_nomre',
     '$adi','$tapildigi_yer', '$tapildigi_vaxt','$tapan_shexs',
    '$tesviri','$dovrleshdirilmesi','$oyrenilmesi','$hundurluyu','$eni','$uzunlugu','$chekisi',
    '$diametr','$agiz','$govde','$oturacaq','$terkibi','$elave_qeydiler','$veziyyati','$shkafda_yer',
    '$tertib_eden', '$mezeya_tehvil_ver_vaxt','$picture1', '$picture2', '$picture3', '$save_date');
    COMMIT;
    
    ";

и получаю ошибку :
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 museum_base (unical_number,dk_nomre,sehra_qeydi,diger_nomre,adi' at line 1

Автор: Mal Hack 28.6.2008, 14:29
mysql.dll не позволяет выполнять два запроса в один раз...

Автор: xarakiry 28.6.2008, 14:32
А тогда как быть если  нужна транзакция ?

Автор: Feldmarschall 28.6.2008, 14:46
выполнить два запроса за два раза

Автор: xarakiry 28.6.2008, 14:50
т.е так ...


Код

$query = "START TRANSACTION;"; 
 $query=" INSERT INTO museum_base (unical_number,dk_nomre,sehra_qeydi,diger_nomre,adi,tapildigi_yer,tapildigi_vaxt,
tapan_shexs,tesviri,dovrleshdirilmesi,oyrenilmesi,hundurluyu,eni,uzunlugu,chekisi,
diametr,agiz,govde,oturacaq,terkibi,elave_qeydiler,veziyyati,shkafda_yer,tertib_eden,
mezeya_tehvil_ver_vaxt,picture1,picture2,picture3,save_date) VALUES 
('$unical_number','$dk_nomre', '$sehra_qeydi','$diger_nomre',
     '$adi','$tapildigi_yer', '$tapildigi_vaxt','$tapan_shexs',
    '$tesviri','$dovrleshdirilmesi','$oyrenilmesi','$hundurluyu','$eni','$uzunlugu','$chekisi',
    '$diametr','$agiz','$govde','$oturacaq','$terkibi','$elave_qeydiler','$veziyyati','$shkafda_yer',
    '$tertib_eden', '$mezeya_tehvil_ver_vaxt','$picture1', '$picture2', '$picture3', '$save_date');";

$query="COMMIT;";


так ? а потом 3 раза функцию запроса выполнять ?

Автор: Glip 28.6.2008, 14:57
Цитата(xarakiry @  28.6.2008,  14:50 Найти цитируемый пост)
а потом 3 раза функцию запроса выполнять ?

не потом а между присваиваниями $query

Автор: MoLeX 28.6.2008, 15:39
xarakiry, надо использовать не mysql_query() для нескольких запросов, а multi_query() (библиотека php_mysqli) 

Автор: xarakiry 28.6.2008, 19:43
Народ...не пойму...вот функция..

Код


$link = mysql_connect($mysql_host,$mysql_user,$mysql_pass) or die ("Ошибка соединения с базой данных");;

function additemstodb($link, $db, $unical_number, $dk_nomre, $sehra_qeydi, $diger_nomre,
    $picture1, $picture2, $picture3, $adi, $tapildigi_yer, $tapildigi_vaxt, $tapan_shexs,
    $dovrleshdirilmesi, $tesviri, $oyrenilmesi, $hundurluyu, $eni, $uzunlugu, $chekisi,
    $diametr, $agiz, $govde, $oturacaq, $terkibi, $elave_qeydiler, $veziyyati, $shkafda_yer,
    $tertib_eden, $muzeya_tehvil_ver_vaxt, $save_date)
{
    
    
  
    mysql_select_db($link,$db)or die (mysql_error());;


    $query = "
    INSERT INTO museum_base (unical_number,dk_nomre,sehra_qeydi,diger_nomre,adi,tapildigi_yer,tapildigi_vaxt,
tapan_shexs,tesviri,dovrleshdirilmesi,oyrenilmesi,hundurluyu,eni,uzunlugu,chekisi,
diametr,agiz,govde,oturacaq,terkibi,elave_qeydiler,veziyyati,shkafda_yer,tertib_eden,
mezeya_tehvil_ver_vaxt,picture1,picture2,picture3,save_date) VALUES 

('$unical_number','$dk_nomre', '$sehra_qeydi','$diger_nomre',
     '$adi','$tapildigi_yer', '$tapildigi_vaxt','$tapan_shexs',
    '$tesviri','$dovrleshdirilmesi','$oyrenilmesi','$hundurluyu','$eni','$uzunlugu','$chekisi',
    '$diametr','$agiz','$govde','$oturacaq','$terkibi','$elave_qeydiler','$veziyyati','$shkafda_yer',
    '$tertib_eden', '$mezeya_tehvil_ver_vaxt','$picture1', '$picture2', '$picture3', '$save_date');
    
    
    ";

  mysql_query($link,$query) or die(mysql_error());;

}


вызываю..выходит ошибка :
Duplicate entry '0' for key 1 не могу понять где что не так...

Автор: xarakiry 28.6.2008, 20:49
Всё нашёл ошибку сам )) всем спасибо )))

Автор: Glip 28.6.2008, 21:30
xarakiry, что-то мало как-то параметров в функции additemstodb() все еще можно запомнить их порядок.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)