【问题标题】:Php MySQL simple form is inserting emptinessphp MySQL简单形式是插入空
【发布时间】:2016-11-15 05:26:31
【问题描述】:

我在使用 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>

感谢所有帮助。

【问题讨论】:

  • 请不要使用the mysql_ database extension,它已被弃用(在PHP7 中已不复存在)特别是如果您刚刚学习PHP,请花精力学习PDO 数据库扩展。 Start here 真的很简单
  • 您可以为此添加表单吗?如果 PHP 正在运行但没有插入值,那么那里可能存在问题。
  • 是的,给我一点时间。
  • 但是如果你必须这样做,那么问题是引用文字中的数组并使用错误的字段名称,即 useVALUES('{$_POST[fname]}','{$_POST[lname]}')
  • 适合仍在使用 mysql_ 数据库扩展的人的名称

标签: php mysql null


【解决方案1】:

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

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

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

另外,正如其他一些用户所指出的,PHP 的 mysql 扩展名 has been deprecated 因此不应使用。此外,您构建查询的方式会打开一个名为SQL injection 的东西,这是非常危险的。

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

【讨论】:

  • 不,记住它们是文本数据,所以它们需要在数据值周围加上单引号!
  • 没有。 string 是双引号,字符串内部的单引号不会影响这些值的解释方式。
  • 小修改,让我能抵挡住DV的诱惑希望你不要介意
  • 您也可以删除数组出现周围的引号,例如 VALUES('$_POST[fname]','$_POST[lname]') 或添加大括号并保留单引号 VALUES('{$_POST['fname']}','{$_POST['lname']}')
  • 别介意!感谢您发现我的错误。也不知道花括号的事情,所以也谢谢你。
猜你喜欢
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
  • 2011-07-16
  • 2013-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多