【发布时间】:2015-09-07 01:53:29
【问题描述】:
我正在使用以下内容将新行插入 MySQL 数据库。
对此的查询存储在 PHP 文件 (ajax.php) 中,输入值通过 jQuery 中的 Ajax 调用传递给它。
一切都按预期工作,但如果电子邮件已经在数据库中,我想向用户返回一条消息。
我知道如何使用 ON DUPLICATE KEY 更新数据库行,但 谁能告诉我如何检查这个并在它已经存在的情况下回显某些内容(即不更新它)?
(电子邮件是一个主键,所以我只需要检查这一列。)
我的 PHP:
$conn = new mysqli($servername, $username, $password, $dbname);
$conn->set_charset("utf8");
if($conn->connect_error){
die("Connection failed: " . $conn->connect_error);
}
$email = $_POST["email"];
$dob = $_POST["dob"];
$sql = "INSERT INTO Users (email, dob) VALUES ('" . $email . "', '" . $dob . "')";
if ($conn->query($sql)){
echo 'DB Update successful';
}else{
echo 'DB Update failed';
}
$conn->close();
【问题讨论】:
-
警告:您的代码极易受到 SQL 注入攻击。您应该将用户输入值绑定到查询参数,而不是将它们直接包含在查询中。请先阅读以下内容:php.net/manual/en/security.database.sql-injection.php
-
非常感谢。我是新手,所以我分步写这个。目前我只是在测试,但在上线之前肯定会调查一下。
标签: php mysql ajax insert duplicates