代码是:
class anything_i
{
/*Every variable is defined and hidden fro privacy.*/
public function connect(){
return mysqli_connect(self::HOST,self::USERNAME,self::PASSWORD,self::DATBASE);
}
public function insertData($postData){
$sqli = 'INSERT INTO `payments`(`item_name`,`price`,`email`,`date`,`time`,`detail`,`volume`,`ip`,`payment_status`) VALUES ("'.$productData['name'].'","'.$productData['price'].'","'.$postData['email'].'","'.$date.'","'.$time.'","'.$postData['list'].'","'.$productData['volume'].'","'.$ip.'","On Hold")';
if(mysqli_query($this->connect(),$sqli)){
print_r(mysqli_insert_id($this->connect()));
}else{
print_r(mysqli_error($this->connect()));
}
}
}
Run Code Online (Sandbox Code Playgroud)
它正在插入数据并且工作正常,但不返回 0(零)以外的任何内容,没有收到任何错误。
让我清楚我的表包含 auto_increment 并且我的连接很好,因为它输入数据很好。请不要忽视这个问题,因为你发现类似的答案。我也发现了类似的问题,但他们中的大多数都有连接问题,其中一些没有AUTO_INCREMENT列,可能有一些在两者之间包含另一个查询。所以,在提到另一个答案之前,请先阅读它。
我怀疑此代码已从旧版 mysql 扩展中迁移而来,其中mysql_connect():
打开或重用与 MySQL 服务器的连接。
mysqli_connect()不再是这种情况:
打开与 MySQL 服务器的连接。
您确实需要将连接存储在变量中并重用相同的连接。目前,您正在同一脚本运行中启动许多不同的连接。