我在这里是一个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;
}
?>
在此先感谢您的帮助,我一直在浏览这些论坛,获取帮助和提示。看起来像一个伟大的社区!
答案 0 :(得分:2)
您以错误的顺序将参数传递给mysql_real_escape_string
。它应该是:
$name = mysql_real_escape_string($_POST['name'], $conn);