【问题标题】:Added database rows are empty mysql/php添加的数据库行是空的 mysql/php
【发布时间】:2014-04-12 12:10:32
【问题描述】:

我想从我的表单写入我的数据库。我很困惑,因为这类似于教程中的脚本并且可以正常工作。

表格(w3schools 示例)摘录:

<form action="insert.php" method="post">
Firstname: <input type="text" name="firstname">
Lastname: <input type="text" name="lastname">
Age: <input type="text" name="age">
<input type="submit">
</form>

php:

<?php
$con=mysqli_connect("localhost","XXX","AAA","databasename");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// escape variables for security
$firstname = mysqli_real_escape_string($_POST['firstname']);
$lastname = mysqli_real_escape_string($_POST['lastname']);
$age = mysqli_real_escape_string($_POST['age']);
$sql="INSERT INTO test (firstname, lastname, age)
VALUES ('$firstname', '$lastname', '$age')";

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

mysqli_close($con);
?>

每次提交都会在我的数据库中添加一个新行。问题:这个添加的行是空的,除了年龄列总是0,不管我提交什么。

我的错误在哪里?

【问题讨论】:

  • mysql中有哪些类型?还有长度?

标签: php sql forms


【解决方案1】:

参考php document 你必须给mysqli_real_escape_string 两个值。 试试这个:

$firstname = mysqli_real_escape_string($con, $_POST['firstname']);
$lastname = mysqli_real_escape_string($con, $_POST['lastname']);
$age = mysqli_real_escape_string($con, $_POST['age']);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 2011-07-15
    • 2016-12-21
    • 1970-01-01
    相关资源
    最近更新 更多