HTML 表单和 PHP 脚本 - 不向 MySQL 数据库表提交数据
Posted
技术标签:
【中文标题】HTML 表单和 PHP 脚本 - 不向 MySQL 数据库表提交数据【英文标题】:HTML Form & PHP Script - Not Submitting Data to MySQL DB Table 【发布时间】:2015-12-30 01:23:43 【问题描述】:我有一个简单的 html 联系表单和一个 php 脚本,用于将数据提交到 mysql 数据库。
一切似乎都正常——我的浏览器显示the data was submitted——除了数据没有出现在phpMyAdmin的数据库表中。我看到的都是"MySQL returned an empty result set (i.e. zero rows)."
这是 PHP 脚本:
<?php
$link = mysqli_connect("db.example.com","dbo","*********") or die("failed to connect to server !!");
mysqli_select_db($link,"db");
if(isset($_REQUEST['submit']))
$errorMessage = "";
$PropertyAddress=$_POST['PropertyAddress'];
$City=$_POST['City'];
$State=$_POST['State'];
$ZipCode=$_POST['ZipCode'];
$AskingPrice=$_POST['AskingPrice'];
$Name=$_POST['Name'];
$Phone=$_POST['Phone'];
$Email=$_POST['Email'];
// Validation will be added here
if ($errorMessage != "" )
echo "<p class='message'>" .$errorMessage. "</p>" ;
else
//Inserting record in table using INSERT query
$insqDbtb="INSERT INTO `db`.`House_Leads`
(`PropertyAddress`, `City`, `State`, `ZipCode, `AskingPrice`, `Name`,
`Phone`, `Email`) VALUES ('$PropertyAddress, '$City',
'$State', '$ZipCode', '$AskingPrice', '$Name', '$Phone', '$Email')";
mysqli_query($link,$insqDbtb) or die(mysqli_error($link));
?>
这是我的 HTML 表单:
<form role="form" action="houseleads.php" method="POST" class="contact clearfix">
<p class="text _text text-4">Property Information</p>
<input class="_input _input-1" name="PropertyAddress" placeholder="Property Street Address" type="text">
<div class="container container-2 clearfix">
<input id="city" class="_input" name="City" placeholder="City" type="text">
<input id="state" class="_input _input-3" name="State" placeholder="State" type="text">
</div>
<div class="container container-3 clearfix">
<input id="zipcode" class="_input" name="ZipCode" placeholder="Zip Code" type="text" maxlength="5">
<input id="price" class="_input _input-5" name="AskingPrice" placeholder="Your Asking Price" type="number" step="5000">
</div>
<p class="text _text text-5">Contact Information</p>
<div class="container container-4 clearfix">
<input id="name" class="firstname" name="Name" placeholder="Your Name" type="text">
<input id="phone" class="_input _input-6" name="Phone" placeholder="Phone Number" type="tel" maxlength="10">
</div>
<input id="email" class="_input _input-7" name="Email" placeholder="Email Address" type="email">
<button id="submit" class="_button" type="submit">Get an Offer</button>
</form>
任何帮助或见解将不胜感激。这是我第一次尝试使用 PHP,在为此苦苦挣扎了几个小时后 X-) 我不知所措。
编辑:连同 Chris 识别的缺少的反引号 - 我在表单按钮的 HTML 中缺少name="submit"
。
【问题讨论】:
请查找准备好的语句。您不想直接从 $_POST 插入。在这里会有很大帮助。 回显$insqDbtb
,看看你得到了什么。
【参考方案1】:
您的 SQL 查询中缺少单引号和反引号。应该是:
$insqDbtb="INSERT INTO `db594303259`.`House_Leads`
(`PropertyAddress`, `City`, `State`, `ZipCode`, `AskingPrice`, `Name`,
`Phone`, `Email`) VALUES ('$PropertyAddress', '$City',
'$State', '$ZipCode', '$AskingPrice', '$Name', '$Phone', '$Email')";
(ZipCode
缺少反引号,$propertyAddress
缺少单引号。)
如果您更正此问题,查询可能会起作用。
编辑:在 phpMyAdmin 中试试这个。
INSERT INTO `db594303259`.`House_Leads`
(`PropertyAddress`, `City`, `State`, `ZipCode`, `AskingPrice`, `Name`,
`Phone`, `Email`) VALUES ('test1', 'test2',
'test3', 'test4', 'test5', 'test6', 'test7', 'test8')
你有什么错误吗?
此外,您可能不需要在查询中再次选择数据库。所以你可以有:
INSERT INTO `House_Leads` ( ...
【讨论】:
感谢收看这个。我已经更新了代码,但数据库中仍然没有任何内容。我将按照@blahfunk 的建议研究准备好的陈述 你也可以发布你的数据库结构吗?它可能会失败,因为列拼写不正确,或者因为输入的数据类型错误。另外,您是否检查了所有$_POST
变量是否已正确地从表单发送到处理程序文件?
dbo594303259
是用户名,db594303259
是数据库名称
哦,我明白了。很多时候用户名和数据库名称是相同的,因此我的评论。
我看不到任何错误。尝试将我上面添加的代码直接输入到数据库中(phpMyAdmin 中的 SQL 选项卡)。以上是关于HTML 表单和 PHP 脚本 - 不向 MySQL 数据库表提交数据的主要内容,如果未能解决你的问题,请参考以下文章
将 PHP 错误日志文件存储在脚本目录中,而不向现有脚本添加 PHP 代码
为啥 php mysqli 不向 Xampp 中的数据库插入数据
使用html表单导入csv数据...使用PHP脚本加载数据infile和MySQL
使用 HTML 表单,如何使用正确的 GET/POST 数据开始调试操作 PHP 脚本? (使用 PhpStorm 和 XAMPP)