MySqli向db添加多行

时间:2016-06-10 04:37:08

标签: php mysql mysqli sql-insert

我是从网络表单向数据库发送数据,但每次运行数据时,数据都会以六个新行而不是一行存储在数据库中。

表单只是一个标准表单,包含电子邮件/密码输入和提交按钮。表单的操作运行:

<?php
// connect to db
$link = new mysqli("localhost", "root", "", "db_name");
if (!$link) {die('Database Error: Could not connect: ' . mysql_error());}

// username and password sent from form
$email = $_POST['email'];
$password = ($_POST['password']);

// encrypt
$salt = substr(base64_encode(mcrypt_create_iv(16, MCRYPT_DEV_URANDOM)), 0, 16);
$em = crypt($email, '$6$'.$salt);
$pw = crypt($password, '$6$'.$salt);

// insert to db
$insert = "INSERT INTO users (email, password) VALUES ('$em', '$pw')";
$link -> query($insert);

// check succes/fail
if ($link->query($insert) === TRUE) {
    echo "New record created successfully";}
else {
    echo "Error: " . $sql . "<br>" . $link->error;
}

// close the db connection
$link->close();

我知道这会带来一个关于使用加密/腌制消毒输入的问题。 This页面说它是一种合理的方法。请随意提起,但我并不是在寻找有关消毒用户输入的最佳做法的争论。

我想知道是否有人告诉我为什么数据会存储6次而不是只存储一次。我将$6$更改为$1$,但仍添加了6行。

1 个答案:

答案 0 :(得分:0)

您的网站上有一些愚蠢的seo友好链接实现,使其在每个请求上运行您的PHP代码,并在您的html中链接到不存在的资源。