MySQL - 用于将值插入表中的PHP形式


MySQL - PHP form to insert values into table?

我想使用一个简单的表单向数据库添加注释。 无论出于何种原因,当我使用上述表格时,我似乎无法更新表格。 我没有收到任何错误,只是之后刷新表时没有任何反应。 换句话说,即使在提交表单后,该表仍有 0 个条目。这是我的代码:

<?php
session_start();
$connection = mysql_connect("server", "username", "password");
if ($connection->connect_error) {
    die('Connect Error: ' . $connection->connect_error);
}
// Selecting Database
mysql_select_db("database", $connection) or die(mysql_error());
$name = $_POST['name'];
$title = $_POST['title'];
$comments = $_POST['comments'];
$sql = "INSERT INTO comments (Name, Title, Comments)
VALUES ('$name', '$title', '$comments')";
mysql_close($connection); // Closing Connection
?>

感谢您的帮助!

你从来没有真正执行过你的查询:

$sql = "INSERT INTO comments (Name, Title, Comments)
VALUES ('$name', '$title', '$comments')";
$result = mysql_query($sql);

其他事项:

  1. if ($connection->connect_error) {无效。你不能以OOP的方式使用旧的mysql API。为此,您需要使用mysqli

  2. 请不要在新代码中使用mysql_*函数。它们不再维护并被正式弃用。看到红框了吗?请改为了解预准备语句,并使用 PDO 或 MySQLi - 本文将帮助您决定哪个语句。如果您选择PDO,这是一个很好的教程。

  3. 你也对SQL注入持开放态度

  4. 您不执行错误检查。如果你不寻找它们,你怎么期望知道是否有问题?

(注意:请更改服务器信息中的服务器,用户名和密码)

 <?php
    session_start();
    $connection = mysql_connect("server","username","password");
    if (!$connection) {
        die('Connect Error: ' . mysql_error());
    }
    // Selecting Database
    mysql_select_db("database",$connection) or die(mysql_error());
    $name = $_POST['name'];
    $title = $_POST['title'];
    $comments = $_POST['comments'];
    $sql = "INSERT INTO comments (Name,Title,Comments)
    VALUES ('$name', '$title', '$comments')";
    mysql_query($sql);
    mysql_close($connection); // Closing Connection
    ?>

为了安全(防御SQL注入),您可以使用mysql_real_escape_string函数来限制输入字段。例如:

$name = mysql_real_escape_string($_POST['name']);
$title = mysql_real_escape_string($_POST['title']);
$comments = mysql_real_escape_string($_POST['comments']);