我想使用一个简单的表单向数据库添加注释。 无论出于何种原因,当我使用上述表格时,我似乎无法更新表格。 我没有收到任何错误,只是之后刷新表时没有任何反应。 换句话说,即使在提交表单后,该表仍有 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);
其他事项:
if ($connection->connect_error) {
无效。你不能以OOP的方式使用旧的mysql API。为此,您需要使用mysqli
。请不要在新代码中使用
mysql_*
函数。它们不再维护并被正式弃用。看到红框了吗?请改为了解预准备语句,并使用 PDO 或 MySQLi - 本文将帮助您决定哪个语句。如果您选择PDO,这是一个很好的教程。你也对SQL注入持开放态度
您不执行错误检查。如果你不寻找它们,你怎么期望知道是否有问题?
(注意:请更改服务器信息中的服务器,用户名和密码)
<?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']);