【发布时间】:2014-05-10 05:41:42
【问题描述】:
我是这里的 PHP/MySQL Greenback,我遇到了一个问题,我尝试通过 PHP 向 MySQL 数据库输入一个简单的表单,该表单一直输入空白条目。
表单是实时的,连接并馈送到数据库,但是每当我提交条目时,我的确认回显它Connected successfullyINSERT INTO db_name.events (eventname, eventprice, eventabout) VALUES ('', '', '') Works!,即使值已填充到 HTML 表单中。然后当我通过PHPmyadmin登录并检查MySQL数据库时,我可以看到它确实在表中创建了一个新行,但它是空白的。
我花了几个小时逐行梳理语法,似乎找不到任何不合适的地方,现在我添加了一堆故障排除步骤来尝试解决它。
非常感谢任何帮助!
HTML表单如下:
<form method="post" action="eventtestconnect.php"><table style="border: 0; margin-left: auto; margin-right:auto;text-align: left">
<tr>
<td>Event Name:</td>
<td><input name="name"></td>
</tr>
<tr>
<td>Event Price:</td>
<td><input name="price"></td>
</tr>
<tr>
<td>Event Description:</td>
<td><textarea name="description" cols="40" rows="5">
</textarea></td>
</tr>
</table>
<br><br>
<input type="submit" value="Submit">
</form>
而连接到这个表单的PHP文件是:
<?php
// connect to database
$dbhost = '111.111.11.111';
$dbuser = 'db_name';
$dbpass = 'pwpwpw';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
//select database
mysql_select_db("db_name", $conn);
if ($_POST)
{
// scrub inputs
$name = mysql_real_escape_string($conn, $_POST['name']);
$price = mysql_real_escape_string($conn, $_POST['price']);
$description = mysql_real_escape_string($conn, $_POST['description']);
// prepare query
$sql = "INSERT INTO db_name.events (eventname, eventprice, eventabout)
VALUES ('$name', '$price', '$description')";
// execute query
mysql_query($sql);
// close connection
mysql_close($conn);
echo $sql;
}
?>
提前感谢您的帮助,我一直在浏览这些论坛以获取帮助和提示。似乎是一个很棒的社区!
【问题讨论】:
-
“INSERT INTO db_name.events (eventname, eventprice, eventabout) VALUES ('', '', '') 行在哪里有效!”从哪里来?
-
那是因为
echo $sql;包含在我的 php 末尾的行,所以当我单击表单上的提交时,它会为我提供查询的详细信息。它用于测试是否从表单中提取数据。 @MarkM -
@MikeW 当我在执行前回显我的查询时,我得到的结果与在关闭与服务器的连接后回显它的结果相同。并且回显错误不会带来任何错误。
标签: php html mysql sql database