<?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 :(得分:2)
您似乎是数据库的新手,看到了您的其他问题,这是唯一一个与数据库工作相关的问题。
此行永远不会执行:
$sqlinsert = "INSERT INTO test (eat, pay) VALUES ('$food','$cost')";
我们不知道您使用哪个MySQL API进行连接;如果它是mysql_
,或mysqli_
或PDO,或其他,因为您未在提问中提及。
根据所使用的API,您需要在PDO中运行mysql_query()
或mysqli_query()
或query()/execute()
。
请参阅以下链接,了解如何执行此操作:
使用您连接的相同API检查错误,并且发现您很可能在同一文件中运行此代码,您需要在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。