重复插入 MySQL

我使用以下代码并WAMP在我的本地主机上测试它

它工作正常并插入数据但是由于某种原因它创建了重复的行。

有没有理由让它出现两次?

<?php
require "conn.php";
$name =$_POST["name"];
$surname = $_POST["surname"];
$age = $_POST["age"];
$username = $_POST["username"];
$userpass = $_POST["password"];

$mysql_qry = "insert into employee_data(name, surname, age, username, password) values ('$name', '$surname', '$age', '$username', '$userpass')";

$result = mysqli_query($conn, $mysql_qry);

if ($conn->query($mysql_qry) === TRUE){
    echo "insert success";
}
else{
    echo "Error:" .$mysql_qry . "<br> " . $conn->error;
}
$conn->close();
?>

谢谢

里格斯愚蠢

是的,您运行查询两次,请参阅代码中的注释

<?php
require "conn.php";
$name =$_POST["name"];
$surname = $_POST["surname"];
$age = $_POST["age"];
$username = $_POST["username"];
$userpass = $_POST["password"];

$mysql_qry = "insert into employee_data
                        (name, surname, age, username, password) 
                values ('$name', '$surname', '$age', '$username', '$userpass')";

//ONCE HERE
$result = mysqli_query($conn, $mysql_qry);

//AND AGAIN HERE
if ($conn->query($mysql_qry) === TRUE){
    echo "insert success";
}
else{
    echo "Error:" .$mysql_qry . "<br> " . $conn->error;
}
$conn->close();
?>

此外,您的脚本对SQL 注入攻击非常开放即使您正在逃避输入,它也不安全!API 中使用准备好的参数化语句MYSQLI_PDO

使用准备好的和绑定的查询编码

<?php
require "conn.php";

$sql = "insert into employee_data
                        (name, surname, age, username, password) 
                values (?,?,?,?,?)";

$stmt = $conn-prepare($sql);
$stmt->bind_param('sssss', $_POST["name"],
                            $_POST["surname"];
                            $_POST["username"];
                            $_POST["password"];

if ( $stmt->execute() ){
    echo "insert success";
}else{
    echo "Error:" .$mysql_qry . "<br> " . $conn->error;
}
$conn->close();
?>

现在我不得不提到使用纯文本密码是多么糟糕。

PHP 提供password_hash()password_verify()请使用它们。这里有一些关于密码的好主意

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

重复执行mysql插入

来自分类Dev

MySQL 插入时重复

来自分类Dev

避免在mysql插入中重复

来自分类Dev

在mysql中重复插入值

来自分类Dev

如何避免在MySQL中插入重复项?

来自分类Dev

PHP-MYSQL-在重复键AND(?)上插入

来自分类Dev

在mysql数据库中插入的重复

来自分类Dev

MySQL插入重复值(非PK)

来自分类Dev

MySQL将重复的值插入表

来自分类Dev

MySQL对外键重复插入忽略

来自分类Dev

MySQL-在避免重复的同时插入行

来自分类Dev

mysql查询插入重复记录

来自分类Dev

重复键上插入/更新的MySQL错误

来自分类Dev

插入时出现 Mysql 重复条目错误

来自分类Dev

数据重复数据并插入(不重复)后的MYSQL

来自分类Dev

插入MySql时检查mysql中的重复条目

来自分类Dev

MySQL在非主密钥的重复更新上插入

来自分类Dev

MySQL-并发“在重复键更新上插入...”

来自分类Dev

mysql insert忽略,替换或更新重复项-插入了吗?

来自分类Dev

MySQL插入:避免带有多个列的重复项

来自分类Dev

创建约束以在MySQL中不插入重复的值

来自分类Dev

MySQL-从SELECT插入,条件为ON的重复键更新

来自分类Dev

使用IF对重复密钥更新进行mysql插入

来自分类Dev

MySQL,如果不重复则插入,否则替换-对于整个表

来自分类Dev

MySQL插入的更新字段...在重复密钥更新时

来自分类Dev

如何忽略重复的键并继续在mysql中插入?

来自分类Dev

如何在mysql插入期间查找重复数据?

来自分类Dev

如何知道由于重复的主键在mysql中插入失败

来自分类Dev

通过尝试插入来测试MYSQL中的重复项