2010-11-17 106 views
-2

我有問題在SQL錯誤與MySQL查詢

SQL錯誤

您的SQL語法錯誤;檢查 對應於你的MySQL服務器版本使用 近58年0.47€ '')」在1號線

的SQL代碼正確的語法手冊:

mysql_query("INSERT INTO ponudba 
(ime_ponudbe,zaporedna_stevilka,id_podjetja,veljavnost,znesek) VALUES('$ime_ponudbe','$zaporedna_stevilka','$id_podjetja','$veljavnost,'$znesek'')"); 
zaporedna_stevilka -> value 1 
id_podjetja -> value 2 
veljavnost -> value 17.11.2010 
znesek-> value is 58.47 

回答

7

嘗試:

mysql_query("INSERT INTO ponudba (ime_ponudbe,zaporedna_stevilka,id_podjetja,veljavnost,znesek) VALUES('$ime_ponudbe','$zaporedna_stevilka','$id_podjetja','$veljavnost,'$znesek')"); 

在最後一個變量的末尾有一個額外的'(撇號)。

+0

發現得很好+1 – 2010-11-17 13:37:30

0

將'$ znesek'更改爲'$ znesek'。你已經使用了雙引號。應該是單引號。

+0

我改變了,但錯誤停留 – Alen 2010-11-17 13:35:48

+0

您可以發佈您現在使用的代碼嗎?它與上面的Ergo相匹配嗎? – 2010-11-17 13:38:46

+0

好的我會發給你 – Alen 2010-11-17 13:41:31

0
<?php 

$podjetje = $_POST['podjetje']; 
     $veljavnost = $_POST['datepicker']; 
     $naziv_artikla_storitve = $_POST['naziv_artikla_storitve']; 
     $kolicina = $_POST['kolicina_st']; 
     $storitev_em = $_POST['em_ime']; 
     $cena_st = $_POST['cena_st']; 
     $cena_popust = $_POST['cena_popust']; 
     $cena_s_popustom = $_POST['cena_s_popustom']; 
     $vrednost_st = $_POST['vrednost_st']; 
     $znesek = $_POST['znesek']; 
     $popust_na_vse = $_POST['popust_na_vse']; 
     $z_z_popustom = $_POST['z_z_popustom']; 
     $ddv = $_POST['ddv']; 
     $koncni_znesek = $_POST['koncni_znesek']; 
     $datum = date("d.m.Y"); 

     $preveri_zap_stevilko = mysql_fetch_array(mysql_query("SELECT max(zaporedna_stevilka) as zaporedna_stevilka FROM ponudba")); 
     $stevilka = $preveri_zap_stevilko['zaporedna_stevilka']; 

     $preveri_st = mysql_query("SELECT zaporedna_stevilka FROM ponudba ORDER BY zaporedna_stevilka ASC"); 

     $i=1; 
     while ($row = mysql_fetch_array($preveri_st)) 
     { 
      if($i != $row['zaporedna_stevilka']) 
      { 
       $manjkajoca_stevilka = $i; 
       break; 
      } 
      $i++; 
     } 

     $vel = sizeof($manjkajoca_stevilka); 
     if($vel == 0) 
     { 
      $zaporedna_stevilka = $stevilka+1; 
     } 
     else 
     { 
      $zaporedna_stevilka = $manjkajoca_stevilka; 
     } 

     $dobi_id_podjetja = mysql_fetch_array(mysql_query("SELECT * FROM stranka WHERE ime_podjetja='$podjetje'")); 
     $id_podjetja = $dobi_id_podjetja['id']; 

     $arr = str_split($zaporedna_stevilka); 

     $vel = sizeof($arr); 

     if($vel == 1) 
     { 
      $nova_st = "0000".$zaporedna_stevilka; 
     } 
     if($vel == 2) 
     { 
      $nova_st = "000".$zaporedna_stevilka; 
     } 
     if($vel == 3) 
     { 
      $nova_st = "00".$zaporedna_stevilka; 
     } 
     if($vel == 4) 
     { 
      $nova_st = "0".$zaporedna_stevilka; 
     } 
     if($vel == 5) 
     { 
      $nova_st = $zaporedna_stevilka; 
     } 
     $ime_ponudbe = "P-".$nova_st."-".$datum; 

     mysql_query("INSERT INTO ponudba (ime_ponudbe,zaporedna_stevilka,id_podjetja,veljavnost,znesek) VALUES('$ime_ponudbe','$zaporedna_stevilka','$id_podjetja','$veljavnost,'$znesek')"); 

?>

+3

你應該編輯你的問題,而不是添加答案... – RedFilter 2010-11-17 13:52:19

+1

你可以重新編輯你原來的帖子來添加這個。您現在在查詢中缺少單引號:'mysql_query(「INSERT INTO ponudba(ime_ponudbe,zaporedna_stevilka,id_podjetja,veljavnost,znesek)VALUES('$ ime_ponudbe','$ zaporedna_stevilka','$ id_podjetja','$ veljavnost ','$ znesek')「);' – Sonny 2010-11-17 13:52:46

0

什麼字符集是MySQL表? '€'是否有效?正如其他人所說,最後一個引號是錯誤的。此外,更危險的是,此代碼感染了SQL注入漏洞。請研究佔位符來處理您的參數。

0

幾個建議:

附上文字

當你引用變量/值之間的'所有的字段名稱,替換:

'$variable''".mysql_real_escape_string ($variable)."'

1

如果你的表字段znesek是雙倍,請確保$znesek也是雙重的,看起來像是字符串。

+1

+1如果'znesek'是數字(int是其他數字類型),那麼錯誤是'$ znesek'的值實際上是'58 .47€'(字符串)。 – ksogor 2010-11-17 14:08:40