我有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>
感谢所有帮助。
答案 0 :(得分:0)
因为您已将$_POST
变量括在单引号('
)中,所以PHP将它们视为字符串而不是数组,因此数据不会从它们中提取。您的查询应如下所示:
$sql = "
INSERT INTO
nametable (firstname, lastname)
VALUES
('" . $_POST['firstname'] . "', '" . $_POST['lastname'] . "')";
(为了便于阅读而添加了空格)
此外,正如其他一些用户所指出的那样,PHP has been deprecated的mysql
扩展名不应该被使用。此外,您构建查询的方式为您打开了一个名为SQL injection的东西,这非常危险。
如果这段代码只是为了好玩,那就没关系,但在任何情况下都不应该将它上传到生产服务器。