PHP mysql自动增量将BLANK传递到数据库中

时间:2016-08-02 09:15:03

标签: php mysql database phpmyadmin

当我尝试为表中的主键传递空白值时,它给了我一个错误,它不会创建/更新。 例如,假设id是具有自动增量的主键 INSERT INTO客户端(id,fname,lname)VALUES('','bob','smith')不起作用。

如何为具有自动增量的主键传递空值?

下面的

是我的代码的一部分:

protected static $table_name="client";
protected static $db_fields=array('id', 'fname', 'lname');
public $id;
public $fname;
public $lname;
...more code

public function create() {

    global $database;
    $attributes = $this->sanitized_attributes();
    $sql = "INSERT INTO ".self::$table_name." (";
    $sql .= join(", ", array_keys($attributes));
    $sql .= ") VALUES ('";
    $sql .= join("', '", array_values($attributes));
    $sql .= "')"; 
    ...more code

}

还有更多代码,但我不能在这里发布所有代码。 我已经尝试使用array_shift()来删除第一个id,但它给了我一个错误。整个代码都在一个名为Client

的类中

1 个答案:

答案 0 :(得分:1)

如果您的id字段是主键并且自动递增,则无需在插入查询中传递它。删除id字段并尝试插入其他字段,它将正常工作。

您的查询应该是:

INSERT INTO client (id, fname, lname) VALUES ('', 'bob', 'smith')

取代:

{{1}}