2014-05-22 167 views
-4

我有一個數據INSERT的問題,當我填寫所有行時,我沒有發現他們在我的數據庫。插入數據通過PHP

這裏是我的代碼:

<?php 

    include("/config/config.php"); 

      ///////////////////////////////traitment de la requete de selection ///////////////////////////////////// 

     if(isset($_POST['val'])) 

     { 
    echo "départ"; 
     $imm=$_POST[im]; 
     $doss=$_POST[nd]; 
     $ass=$_POST[ns]; 
     $bn=$_POST[bn]; 
     $trec=$_POST[T_rec]; 
     $Erec=$_POST[e_rec]; 
     $mt=$_POST[Mt]; 
     $Drec=$_POST[Dt]; 
     $INP=$_POST[inp]; 
     $com=$_POST[comm]; 

     $resultat=mysql_query("INSERT INTO rec_info ('imma','INP','n_dossier','nom_benif','nom_ass','montant','type_rec', 
     'date_rec','etat_rec','comm_rec','num_rec') Values 
     ('$imm','$INP','$doss','$bn','$ass','$mt','$trec','$Drec','$Erec','$comm','')"); 

     if($resultat) 
     { 

      echo "opération réussie "; 
     }else { 
      echo "opération non réussie "; 
     } 

     } 
    ?> 


</div> 

<div style=" position:absolute;left:15px;width:310px;top:173px; background-color:#eff5f7; font-size:102%; padding:0em;line-height:200% "> 
     Menu 
    <nav> 
     <ul id="menu"> 
     <li><a href="rec_recherche.php">Recherche d'une réclamation PEC </a></li> 
     <li><a href="s_rec.php">Saisir une réclamation PEC </a></li> 
     <li><a href="">Changement d'état d'une réclamation PEC</a></li> 
     <li><a href="index1.php">Quitter</a></li> 

     </ul> 
    </nav> 

     </div> 
</div> 

    </body> 
</html> 

謝謝

+5

「你能找到bug」的問題[對Stack Overflow來說不是好問題](http://meta.stackoverflow.com/questions/253787/are-there-legitimate-fix-my-code-questions?cb = 1#253788)。確保你對問題**有一個簡短但具體的陳述,準確地告訴我們什麼是錯的。 「它不起作用」不是一個問題陳述。 –

+0

當您執行INSERT INTO時,您的列不使用引號。要麼拿出來,要麼用反引號代替它們。只有VALUES使用單引號。您還需要在'$ imm = $ _ POST ['im'];'中使用'$ imm = $ _ POST [im];'中的引號等等 –

+0

將錯誤報告添加到文件頂部 '使用error_reporting(E_ALL); ini_set('display_errors',1);'在開發過程中。 –

回答

0

你不能在你的列標識符單引號。無論是使用蜱或什麼都沒有:

$resultat=mysql_query("INSERT INTO rec_info (imma,INP,n_dossier,nom_benif,nom_ass,montant,type_rec, 
    date_rec,etat_rec,comm_rec,num_rec) Values 
    ('$imm','$INP','$doss','$bn','$ass','$mt','$trec','$Drec','$Erec','$comm','')"); 

$resultat=mysql_query("INSERT INTO rec_info (`imma`,`INP`,`n_dossier`,`nom_benif`,`nom_ass`, 
`montant`,`type_rec`,`date_rec`,`etat_rec`,`comm_rec`,`num_rec) 
Values ('$imm','$INP','$doss','$bn','$ass','$mt','$trec','$Drec','$Erec','$comm','')"); 

Please, don't use mysql_* functions in new code。他們不再維護and are officially deprecated。查看red box?請改爲了解prepared statements,並使用PDOMySQLi - this article將幫助您決定哪個。如果您選擇PDO,here is a good tutorial

你也廣SQL injections

+0

爲什麼你在投票結束時發佈答案? – jeroen

+0

我不相信這兩者是相互排斥的。我認爲有機會在這裏教書。 PHP和如何成爲一個好的SO公民。特別是因爲有一個編碼工作。 –

+0

您正在發佈答案,同時試圖避免其他人可以發佈答案。我不知道我是否有資格認爲這是'如何成爲一個好的SO公民'。對於評論雖然有點長:-) – jeroen

0

你有一個問題,你的MySQL語法

打開您查詢您的字段名稱應與回寫蜱不報價。我會舉一個例子,但堆棧不會讓我輸入回刻度。

0

這部分應該有蜱:

$imm=$_POST['im']; 
    $doss=$_POST['nd']; 
    $ass=$_POST['ns']; 
    $bn=$_POST['bn']; 
    $trec=$_POST['T_rec']; 
    $Erec=$_POST['e_rec']; 
    $mt=$_POST['Mt']; 
    $Drec=$_POST['Dt']; 
    $INP=$_POST['inp']; 
    $com=$_POST['comm']; 

而且這部分不應該有蜱(表中的字段):

$resultat=mysql_query("INSERT INTO rec_info (imma,INP,n_dossier,nom_benif,nom_ass,montant,type_rec, 
date_rec,etat_rec,comm_rec,num_rec) Values 
('$imm','$INP','$doss','$bn','$ass','$mt','$trec','$Drec','$Erec','$comm','')"); 

記住在MySQL蜱是唯一的變量。