Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не срабатывает INSERT-запрос: 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
 
 автор: maxim14   (05.05.2011 в 09:40)   письмо автору
 
 



<?php
 
include "setting.php";
$arr file"tyuy.csv" FILE_IGNORE_NEW_LINES |
                           
FILE_SKIP_EMPTY_LINES |
                           
FILE_BINARY);
$sql = array();
   
   for(
$i 0$i count($arr); $i++)  
  {  
    
$arr[$i] = trim($arr[$i]);  
    
$line explode(","$arr[$i]);  
   
$sql[] = "('{$line[0]}', 
               '
{$line[1]}', 
               '
{$line[2]}', 
               '
{$line[3]}', 
               '
{$line[4]}', 
               '
{$line[5]}', 
               '
{$line[6]}',
                '
{$line[7]}',
                '
{$line[8]}',
                '
{$line[9]}',
                '
{$line[10]}',
                '
{$line[11]}',
                '
{$line[12]}',
                '
{$line[13]}',
                '
{$line[14]}',
                '
{$line[15]}',
                '
{$line[16]}',
                '
{$line[17]}',
                '
{$line[18]}',
                '
{$line[19]}',
                '
{$line[20]}',
                '
{$line[21]}',
                '
{$line[22]}',
                '
{$line[23]}',
                '
{$line[24]}',
                '
{$line[25]}'
               )"
;
             
                 
    
//$arr = explode ("\n", $contents);

echo "<pre>";
print_r ($sql);
echo 
"</pre>";
$result=mysql_query("SELECT * FROM `trika_farm` WHERE name = `$line[1]`");
   
printf($result);
    if (
$result=='true')
     {
     
$status;
     
$query1=("UPDATE `trika_farm` SET price=`$line[10]`");
     
mysql_query($query1);
     
     }
     else
     {
    
     
$query = (" INSERT INTO`trika_farm`( `name`, `made`, `cmade`, `valid`,`price`, `prodprice`, `GNVLS`, `cncode`, `barcode`) VALUES ($line[1],$line[2],$line[3],$line[7],$line[9],$line[19],$line[22],$line[23]");
     
mysql_query($query);
    
     
   
     }   

  if(!
mysql_query($query)) exit("Запрос не выполнился по тому, что ".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 'ПОЯС АЛТЕРНА ДЛЯ КАЛО/УРОПРИЕМНИКОВ,COLOPLAST A/S,ДАНИЯ,20151001,141.68000000,F,' at line 1

не могу понять почему

  Ответить  
 
 автор: cheops   (05.05.2011 в 09:51)   письмо автору
 
   для: maxim14   (05.05.2011 в 09:40)
 

Строковые значения нужно заключать в кавычки, у вас же значения в конструкции VALUES идут без кавычек, так как будто они все числовые.

  Ответить  
 
 автор: maxim14   (05.05.2011 в 10:08)   письмо автору
 
   для: cheops   (05.05.2011 в 09:51)
 

Изменил на это :

$query = (" INSERT INTO`trika_farm`( `name`, `made`, `cmade`, `valid`,`price`, `prodprice`, `GNVLS`, `cncode`, `barcode`) VALUES ('$line[1]','$line[2]','$line[3]',$line[7],$line[9],'$line[19]',$line[22],$line[23]");


Теперь выдает Запрос не выполнился по тому, что 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 '' at line 1

  Ответить  
 
 автор: cheops   (05.05.2011 в 10:31)   письмо автору
 
   для: maxim14   (05.05.2011 в 10:08)
 

У вас для конструкции VALUES нет завершающей круглой скобки.

  Ответить  
 
 автор: maxim14   (05.05.2011 в 10:34)   письмо автору
 
   для: cheops   (05.05.2011 в 10:31)
 

Спасибо! Но теперь получилось вот что Column count doesn't match value count at row 1
Понимаю что это связано со сструктурой таблицы, а куда копать не пойму
Разобрался, проблема была в том что несоответствовало количество полей и значений

  Ответить  
 
 автор: maxim14   (05.05.2011 в 11:10)   письмо автору
 
   для: maxim14   (05.05.2011 в 10:34)
 

Теперь не могу понять почему не работает вот эта часть кода
$result=mysql_query("SELECT * FROM `trika_farm` WHERE name = `$line[1]`");
   printf($result);
    if ($result=='true') 

То есть скрипт при повторном запуске дублирует уже имеющиеся записи

  Ответить  
 
 автор: Lotanaen   (05.05.2011 в 11:21)   письмо автору
 
   для: maxim14   (05.05.2011 в 11:10)
 

в кавычки возьмите, а не в апостриф $line[1]

  Ответить  
 
 автор: cheops   (05.05.2011 в 11:25)   письмо автору
 
   для: maxim14   (05.05.2011 в 11:10)
 

Функция mysql_query() не возвращает результат, она возвращает дескриптор, по которому можно получить результат. Т.е. этот фрагмент лучше переписать так
<?php
  
...
  
$query "SELECT COUNT(*) FROM `trika_farm` WHERE name = '$line[1]'";
  
$result=mysql_query($query); 
  if(!
$result) exit("Ошибка - ".mysql_error());
  if (
mysql_result($query0)) 
  ...
?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования