【问题标题】:PHP/HTML Form Feeding Blank Entries to MySQLPHP/HTML 表单向 MySQL 提供空白条目
【发布时间】: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


【解决方案1】:

您以错误的顺序将参数传递给mysql_real_escape_string。应该是:

$name = mysql_real_escape_string($_POST['name'], $conn);

【讨论】:

  • 漂亮!就是这样。非常感谢,非常感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2017-08-28
  • 1970-01-01
  • 1970-01-01
  • 2015-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
相关资源
最近更新 更多