2016-08-03 57 views
-2

在搜索到與我的相同的問題後,發現沒有解決方案,我決定在這裏問。PHP方法後不能存儲數據到數據庫,沒有產生錯誤

我在1分貝有2個表,一個是「produk」,另一個是「sparepart」都有完全相同的數字和名稱的列。

我寫了完全相同的HTML和PHP代碼,只是更改了表名,以便將數據存儲到它們各自的表中。

問題是來自produk.php的數據存儲在produk表中,但sparepart.php中的數據在查詢後沒有存儲在sparepart表中。

我試着檢查錯誤,但沒有產生錯誤,而是回聲「成功」。

請看看我的簡化代碼:

HTML

<?php echo "<header><h3>TAMBAHKAN PRODUK SPAREPART</h3></header> 
    <form method=POST action='$aksi?module=sparepart&act=input' enctype='multipart/form-data'> 
    <div class='module_content'> 
     <table id='rounded-corner'> 
     <tr> 
      <td width=70>Nama Produk</td>  
      <td> : <input type=text name='nama_produk' size=60></td> 
     </tr> 
     <tr> 
      <td>Kategori</td> 
      <td> : 
      <select name='kategori'> 
       <option value=0 selected>- Pilih Kategori -</option>"; 
       $tampil=mysql_query("SELECT * FROM kategori ORDER BY nama_kategori"); 
       while($r=mysql_fetch_array($tampil)){ 
       echo "<option value=$r[id_kategori]>$r[nama_kategori]</option>"; 
       } 

      echo "</select> 
      </td> 
     </tr> 
     <tr> 
      <td>Kategori 2</td> 
      <td> : 
      <select name='kategori2'> 
       <option value=0 selected>- Pilih Kategori2 -</option>"; 
       $tampil2=mysql_query("SELECT * FROM kategori2 ORDER BY nama_kategori2"); 
       while($r2=mysql_fetch_array($tampil2)){ 
       echo "<option value=$r2[id_kategori2]>$r2[nama_kategori2]</option>"; 
       } 
      echo "</select> 
      </td> 
     </tr> 
     <tr> 
      <td>Harga </td>  
      <td> : <input type=text name='harga' size=10></td> 
     </tr> 
     <tr> 
      <td>Stok</td>  
      <td> : <input type=text name='stok' size=5></td> 
     </tr> 
     <tr> 
      <td>Diskon</td>  
      <td> : <input type=text name='diskon' size=5></td> 
     </tr> 
     <tr> 
      <td>Potongan</td>  
      <td> : <input type=tetxt name='potongan' size=10></td> 
     </tr> 
     <tr> 
      <td valign=top>Deskripsi</td> 
      <td> <textarea name='deskripsi' style='width: 600px; height: 350px;'></textarea></td> 
     </tr> 
     <tr> 
      <td>Gambar</td>  
      <td> : <input type=file name='fupload' size=40> 
       <br>Tipe gambar disarankan JPG/JPEG dan ukuran lebar maks: 400 px 
      </td> 
     </tr> 
     <tr> 
      <td colspan=2> 
      <input type=submit class='button' value=Simpan> 
      <input type=button class='button' value=Batal onclick=self.history.back()> 
      </td> 
     </tr> 
     </table> 
    </form>";?> 

PHP

<?php 
$module=$_GET[module]; 
$act=$_GET[act]; 

$produk_seo = seo_title($_POST['nama_produk']); 

if (!empty($lokasi_file)){ 
    // Cek file type 
    if (($tipe_file =="image/jpeg" OR $tipe_file=="image/gif" OR 
     $tipe_file=="image/png" OR $tipe_file=="image/wbmp")){ 
      UploadImage($nama_file_unik); 
      $query1 ="INSERT INTO sparepart(nama_produk, 
           produk_seo, 
           id_kategori, 
           id_kategori2, 
           berat, 
           harga, 
           diskon, 
           stok, 
           deskripsi, 
           tgl_masuk, 
           potongan, 
           gambar) 
         VALUES('$_POST[nama_produk]', 
           '$produk_seo', 
           '$_POST[kategori]', 
           '$_POST[kategori2]', 
           '$_POST[berat]', 
           '$_POST[harga]', 
           '$_POST[diskon]', 
           '$_POST[stok]', 
           '$_POST[deskripsi]', 
           '$tgl_sekarang', 
           '$_POST[potongan]', 
           '$nama_file_unik')"; 
     $sql = mysql_query($query1); 
     if (!sql) { 
      die('there is an error'); 
      mysql_errno($sql).":".mysql_error($sql); 
     } else { 
      echo "success bro!"; 
     } 
    } 
    else 
    { 
     $query2 = "INSERT INTO sparepart(nama_produk, 
           produk_seo, 
           id_kategori, 
           id_kategori2, 
           berat, 
           harga, 
           diskon 
           stok, 
           deskripsi, 
           potongan, 
           tgl_posting) 
         VALUES('$_POST[nama_produk]', 
           '$produk_seo', 
           '$_POST[kategori]', 
           '$_POST[kategori2]', 
           '$_POST[berat]',         
           '$_POST[harga]', 
           '$_POST[diskon]', 
           '$_POST[stok]', 
           '$_POST[deskripsi]', 
           '$_POST[potongan]', 
           '$tgl_sekarang')"; 
     $sql=mysql_query($query2); 
     if(!sql) { 
      die('there is an error'); 
      mysql_errno($sql).":".mysql_error($sql); 
     } else { 
      echo "success bro!"; 
     } 
} 

我想知道爲什麼2個相同的代碼之間,只有1個作品,另一個不迴應任何錯誤,但不工作。

我在我的真實項目中使用mysqli_ *。在寫這個問題時,我只是覺得更適合使用Mysql_ *,所以謝謝你提醒我關於mysql_ *被棄用的問題。

+1

停止使用mysql_query,它已被棄用..加上你的查詢很容易sql注入。對它進行參數化。 – Gogol

+2

事實上,這段代碼給了我一個蠕變:S – Gogol

+0

請不要使用[mysql_'數據庫擴展](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in- PHP 已棄用(在PHP7中永遠無法使用)特別是如果您只是學習PHP,請花些精力學習'PDO'數據庫擴展。 [開始](http://php.net/manual/en/book.pdo.php)其真的很容易 – RiggsFolly

回答

1

最後使用die()方法,這就是爲什麼你沒有得到錯誤。

if (!sql) { 
    /* die('there is an error'); */ // was like this before 
    echo mysql_errno($sql).":".mysql_error($sql); 
    die('there is an error'); // make it like this 
} 
+0

這不會顯示更多,mysql錯誤函數不會迴應他們的結果。 –

+0

是沒有迴音也..:D更新..;) –

1
$a=$_POST['kategori']; 
$b=$_POST['kategori2']; 

$query=mysql_query("INSERT INTO sparepart VALUES('$a','$b')"); 

if(!query) 
{ 
     die('there is an error'); 

} 
else 
{ 
     echo "success bro!"; 
} 

做這樣的事情注: - 在使用後''

相關問題