PHP的简单形式是插入空虚

时间:2016-07-12 20:00:03

标签: php mysql null

我有phpMyAdmin的这个问题。我已经设置了我简单的php和mysql脚本,一切正常。它连接到我的mysql数据库(远程与我的托管服务提供商),它确实将所有必需的字段插入数据库。问题是这些字段都是空白的。他们什么都没有。这是我的代码:

<?php
$con = mysql_connect("myserverip","mydatabasename","my password");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("mydatabasename", $con);

$sql="INSERT INTO nametable (firstname, lastname) VALUES('$_POST[firstname]','$_POST[lastname]')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";

mysql_close($con)
?>

html非常简单,只有两个带名字和姓氏的输入字段:

html:

<html>
<body>
<h1>A small example page to insert some data in to the MySQL database using PHP</h1>
<form action="insert.php" method="post">
Firstname: <input type="text" name="fname" /><br><br>
Lastname: <input type="text" name="lname" /><br><br>

<input type="submit" />
</form>
</body>
</html>

感谢所有帮助。

1 个答案:

答案 0 :(得分:0)

因为您已将$_POST变量括在单引号(')中,所以PHP将它们视为字符串而不是数组,因此数据不会从它们中提取。您的查询应如下所示:

$sql = "
  INSERT INTO 
      nametable (firstname, lastname) 
  VALUES
      ('" . $_POST['firstname'] . "', '" . $_POST['lastname'] . "')";

(为了便于阅读而添加了空格)

此外,正如其他一些用户所指出的那样,PHP has been deprecatedmysql扩展名不应该被使用。此外,您构建查询的方式为您打开了一个名为SQL injection的东西,这非常危险。

如果这段代码只是为了好玩,那就没关系,但在任何情况下都不应该将它上传到生产服务器。