我有以下PHP类,我使用它来连接数据库和创建一个新实例:
获取插入元素的ID:
class db{
public $db_connection;
public function __construct(){
$this->db_connection = new mysqli("127.0.0.1","user","passwd","table");
$this->db_connection->set_charset("utf8");
if($this->db_connection->connect_errno) {
echo "Failed to connect to database: " . $db_connection->connect_error;
}
}
public function __destruct(){
return $this->db_connection->close();
}
}
我使用的代码将内容添加到数据库中:
$db = new db();
$success = $db->db_connection->query(
"INSERT INTO users(
name
)
VALUES(
'".$_POST["firstname"].'
)"
);
获取插入元素的ID:
if($success){
$user_id = $db->db_connection->insert_id;
echo $user_id; // outputs 0
}
尽管我在数据库中有多个条目,但我仍然获得值0,这是否有其他解决方法?该表的id也具有AUTO INCREMENT属性。
注意:代码已简化,且不是整个结构,但足以解释实际问题。
$_POST
,这会容易受到 SQL注入 的攻击。最后,你应该总是输出MySQL的错误信息。 - Machavity