MySql:使用PHP在自动增量字段中插入值

MySql:使用PHP在自动增量字段中插入值,php,mysql,auto-increment,Php,Mysql,Auto Increment,我实际上要做的是插入一行,其中包含: 插入用户值(col1、col2等) 其中col1是一个自动增量 PHP代码是: <?php $host = "http://name.altervista.org/"; $user = "name"; $psw = ""; $db = "my_name"; $response = array(); $response["success"] = true; $connessione = new mysqli($host, $user, $psw,

我实际上要做的是插入一行,其中包含:

插入用户值(col1、col2等)

其中col1是一个自动增量

PHP代码是:

<?php 
$host = "http://name.altervista.org/";
$user = "name";
$psw = "";
$db = "my_name";

$response = array();
$response["success"] = true;

$connessione = new mysqli($host, $user, $psw, $db);

if($connessione->connect_errno == 0)
{
    $nome = $_POST["nome"];
    $cognome = $_POST["cognome"];
    $username = $_POST["username"];
    $password = $_POST["password"];
    $nTelefono = $_POST["nTelefono"];
    $email = $_POST["email"];

    $sql = "INSERT INTO users 
            VALUES (DEFAULT, '$nome', '$cognome', '$username', '$password', '$nTelefono', '$email')";
    $ris = $connessione->query($sql);

    if($connessione->affected_rows == 1)
    {
        echo(json_encode($response)); 
    }
    else
    {
        $response["success"] = false;
        echo(json_encode($response)); 
    }
}
else
{
    $response["success"] = false;
    echo(json_encode($response)); 
}
?>

在执行
插入操作时,请列出要插入的所有列。你似乎想要:

INSERT INTO users (nome, cognome, username, password, nTelefono, email)
    VALUES ('$nome', '$cognome', '$username', '$password', '$nTelefono', '$email');
下一个。切勿在数据库中存储明文密码。您应该在客户端对该值进行加密,以便这些值永远不会通过网络传递


下一个。学习使用参数化查询。当您使用参数值咀嚼查询字符串时,您会询问无法解释的语法错误,并使代码受到SQL注入攻击。

当您执行
插入时,请列出所有插入的列。你似乎想要:

INSERT INTO users (nome, cognome, username, password, nTelefono, email)
    VALUES ('$nome', '$cognome', '$username', '$password', '$nTelefono', '$email');
下一个。切勿在数据库中存储明文密码。您应该在客户端对该值进行加密,以便这些值永远不会通过网络传递

下一个。学习使用参数化查询。当您使用参数值咀嚼查询字符串时,您正在询问无法解释的语法错误,并使代码受到SQL注入攻击。

来自

INSERT-INTO-users值(“$nome”、“$cognome”、“$username”、“$password”、“$nTelefono”、“$email”);

自动增量字段不需要在

INSERT-INTO-users值(“$nome”、“$cognome”、“$username”、“$password”、“$nTelefono”、“$email”);


在MySQL中,不需要在
INSERT
语句中设置自动增量字段,如果您有一个自动增量列,则不需要将其放入INSERT语句中

例如: 你有一张桌子:

CREATE TABLE test (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL
);
您的SQL语句应该是:

INSERT INTO test(name) VALUES ('My name');

在MySQL中,如果有一个自动增量列,则不需要将其放入insert语句中

例如: 你有一张桌子:

CREATE TABLE test (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL
);
您的SQL语句应该是:

INSERT INTO test(name) VALUES ('My name');

对于AI'd列,不需要有任何值;只需删除它只需删除第一个字段值或在自动增量字段中插入“''''”,可能会有所帮助。到目前为止给出的一些答案未能解决纯文本密码问题。除非你使用了安全的散列方法,否则不要接受它。@Fred ii-Gordon的答案并没有失败。@FMashiro I被纠正;你说得对。我编辑过。AI'd列不需要任何值;只需删除它只需删除第一个字段值或在自动增量字段中插入“''''”,可能会有所帮助。到目前为止给出的一些答案未能解决纯文本密码问题。除非你使用了安全的散列方法,否则不要接受它。@Fred ii-Gordon的答案并没有失败。@FMashiro I被纠正;你说得对。我编辑过。我试了好几次,但都不管用。我知道,不使用自动递增值,理论上Sql将自己提供一个值。但我不明白为什么现在不能像它那样工作。对于密码的问题,是的,下一步要做的是,我尝试了好几次,但都不起作用。我知道,不使用自动递增值,理论上Sql将自己提供一个值。但我不明白为什么现在不能像它那样工作。至于密码的问题是的,下一步要做的是它不会工作。如果没有插入sql查询中的所有列,则必须指定保存数据的列。所以为了让它工作,请在表名后面指定列名()如果我没有放置字段,我必须在上面指定它们。问题是它仍然不起作用。如果没有插入sql查询中的所有列,则必须指定保存数据的列。所以为了让它工作,请在表名后面指定列名()如果我没有放置字段,我必须在上面指定它们。问题是这仍然不起作用