2016-11-06 118 views
-2
<?php 
require 'connect.inc.php'; 

$food= $_POST['food']; 
$cost= $_POST['cost']; 

$sqlinsert = "INSERT INTO test (eat, pay) VALUES ('$food','$cost')"; 

?> 

<form method = "POST" action = "index.php"> 
    Food: <input type = "text" name = "food"> 
      <br/> 
    Cost: <input type = "text" name = "cost"> 
      <br/> 
      <input type = "submit" value = "order"> 
</form> 

为什么我的代码不工作? index.php是好的,它连接好,但没有输出显示在我的数据库中时,我运行此代码。为什么我的代码不能将数据插入数据库?

+0

你在哪里运行查询? – Federkun

+0

由于将查询文本分配给变量并不意味着该查询将被执行。 –

+0

执行mysqli_query() –

回答

2

你似乎是数据库的新手,看到你的其他问题,这是唯一与数据库工作有关的问题。

这行永远不会被执行:

$sqlinsert = "INSERT INTO test (eat, pay) VALUES ('$food','$cost')"; 

我们不知道你正在使用与连接的MySQL的API;如果它是mysql_mysqli_或PDO或其他,因为你没有在你的问题中提及。

根据使用的API,您需要在PDO中运行mysql_query()mysqli_query()query()/execute()

请教关于如何做到这一点下面的链接:

检查也使用您连接相同的API错误,看到你很可能在同一个文件中运行这些代码,你需要使用条件语句aroun d你的POST数组检查它们是否为空,和/或在提交按钮上使用isset()并给它一个“名称”属性。

即:<input type = "submit" name = "submit" value = "order">

if(isset($_POST['submit'])) {...}

否则,你站在后仰得到错误。

如果空参考:

注:不同的MySQL API不混杂,所以你不能用mysql_和查询与mysqli_query()或PDO连接,记住这一点。

另一件事是确保进入数据库的数据不包含MySQL会抱怨的字符,如撇号。

因此,您将需要转义该数据。这是另一个原因,避免可能的SQL注入;你应该使用一个准备好的声明。

参考文献:


脚注:

如果您使用的是mysql_ API与连接时,该API是已弃用并已在PHP 7.0中删除。如果是这种情况,那么您将需要使用mysqli_或PDO API。