2014-10-06 154 views
-3

我正在使用數據庫的腳本,但它已經很長時間,因爲我學到了這個東西,它一直給我錯誤,它可能很容易爲你們=)將數據插入數據庫?

我想輸入這

<body> 
<hr> bestelling <hr> 

<form action="bestellingopslaan.php" method="post"> 

Bestelnummer <input name="bestelnummer" type="text"> <br> 
Klantnaam <input name="klantnaam" type="text"> <br> 
Artikel<input name="artikel" type="text"> <br> 
Prijs <input name="prijs" type="text"> <br> 
<input name="verzenden" type="submit" value="Verzenden" /> 

</form> 

此頁面

<body> 
bestelling opslaan 


<?php 
$dbhost = 'localhost'; 
$dbuser = 'root'; 
$dbpass = ''; 
$dbname = '11092068'; 

//connection to the database 
$dbhandle = mysql_connect($dbhost, $dbuser, $dbpass) 
Or die("couldn't connect to SQL Server on $dbhost"); 

//select a database to work with 
$selected = mysql_select_db($dbname, $dbhandle) 
Or die("couldn't open database $dbname"); 

//maak de query 
$insert_query = "INSERT INTO bestelling ('$_POST[bestelnummer]', '$_POST[klantnummer]',  '$_POST[artikel]', '$_POST [prijs]') "; 

if (mysql_query($insert_query, $dbname)) 
{ 
    echo "de gegevens zijn opgeslagen in de database"; 
} 
else 
{ 
    echo "foutje"; 
}   
?>    
</body> 
</body> 

這裏是我的數據庫的截圖

database

所以,我希望你們能幫助我。

+2

什麼錯誤,在哪裏,你想達到什麼目的? – Justinas 2014-10-06 14:36:43

+1

首先轉義您的用戶輸入,然後命名列:'插入到選項卡(col1,col2)值('val1','val2')'。 Google *準備好的語句* – 2014-10-06 14:37:30

+3

您很容易受到[sql注入攻擊](http://bobby-tables.com)和使用已棄用/過時的數據庫庫的影響。停止研究這段代碼,直到你學會如何防止這些攻擊爲止,然後再切換到一個合適的支持庫,然後再往下走這個兔子洞 – 2014-10-06 14:38:55

回答

0

這將是很好看,但看你的代碼,它看起來像你在查詢forgottten VALUES你的錯誤....應該是INSERT INTO table_name (column1, column2 ,etc) VALUES .....

+0

是的,sql語法錯誤是OP問題的一部分。但不喜歡w3fools。他們是垃圾資源。僅僅因爲他們首先出現在Google的結果中並不會使他們有用。改爲鏈接到實際的mysql文檔。 – 2014-10-06 14:40:13

+0

@ZiomekZiomski你不一定需要列名來插入數據,他的問題是他在雙引號內使用他的變量的方式,沒有括號來定義每個變量或通過連接它和其他可能的方法。通過將MySQLi或PDO與準備好的語句結合起來會更簡單。 – Prix 2014-10-06 14:41:57

+0

我同意上面給出的意見。如果有的話,我建議你找到一個帶有代碼的'INSERT'例子,它使用'mysqli'或PDO,並基於OP使用的準備語句。這將是一個更好的答案。 – 2014-10-06 15:09:41