【发布时间】:2018-05-04 16:24:22
【问题描述】:
我想知道这段代码有什么问题? 我想要发生的是在单击提交按钮时插入记录。但似乎我的 isset 函数有问题。
Database Name: dbase
Table Name: tblmessage
Fields:
message_id - INT - auto increment
message - TEXT
更新: 我仍然无法在我的数据库中添加/插入记录。
提前谢谢你!
<html>
<head></head>
<body>
<form method = "post" action = "<?php echo $_SERVER['PHP_SELF']; ?>">
Message: <input type = "text" name = "message">
</br></br>
<input type = "submit" name = "submit">
</form>
<?php
if (isset($_POST['submit'])) {
if (!empty($_POST['message'])) {
$conn = mysqli_connect("localhost", "root", "","dbase");
$message = $_POST['message'];
$sql = ""INSERT INTO tblmessage (message_id, message) VALUES (NULL, '$message')";
$insert = mysqli_query($conn,$sql);
if ($insert) {
echo "Message successfully added!";
}
else {
echo "Error" . mysqli_error($conn);
}
}
}
mysqli_close($conn);
?>
</body>
</html>
【问题讨论】:
-
哇,这真的很冒险。您直接向数据库查询输入字段的内容。这尖叫着 SQL 注入。您的消息输入的内容到底是什么?像
INSERT INTO...这样的真实查询,或者只是一个文本,您想将其保存在您的数据库中吗? -
@wayneOS 我已经添加了 sql - insert.. 但仍然无法正常工作:(
-
如果您需要帮助,请准确描述您的问题。 “不工作”是不够的。
-
@wayneOS 是对的。您想在查询输入之前使用准备好的语句和参数化查询之类的东西来避免 mysql 注入。至于当前的问题,'message'是你的表名吗?您收到什么错误消息?
-
要检查您收到的错误,请执行以下操作
<?php // From http://ca2.php.net/manual/en/function.mysql-query.php $sql = "INSERT INTO (message) VALUES ('$message')"; if (!$sql) { trigger_error('Invalid query: ' . mysql_error()); }
标签: php mysql html mysqli phpmyadmin