2014-10-06 151 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