Php 返回0个mysqli\u受影响的行和mysqli\u插入\u id
我使用函数db_connect和db_query(),但我有一个问题:我如何使用mysqli_insert_id()和mysqli_impact_rows(),因为该值返回0Php 返回0个mysqli\u受影响的行和mysqli\u插入\u id,php,function,mysqli,Php,Function,Mysqli,我使用函数db_connect和db_query(),但我有一个问题:我如何使用mysqli_insert_id()和mysqli_impact_rows(),因为该值返回0 function db_connect(){ static $connection; require_once __DIR__ . '/cfconfig.php'; $connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD,
function db_connect(){
static $connection;
require_once __DIR__ . '/cfconfig.php';
$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE);
$connection->set_charset('utf8');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
return $connection;
}
function db_query($query) {
$connection = db_connect();
$result = mysqli_query($connection,$query);
return $result;
}
例如:
db_query("INSERT INTO ....
在此之后:
$afectrows = mysqli_affected_rows(db_connect());
$insertid = mysqli_insert_id(db_connect());
值返回0这是因为您的函数,它会在每次调用时创建新的连接,尽管存在一些cargo cult静态变量 要使它工作,你必须使你的连接真正静态
function db_connect(){
static $connection;
if (!$connection) {
require_once __DIR__ . '/cfconfig.php';
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE);
$connection->set_charset('utf8');
}
return $connection;
}
现在您可以获得插入id了
$id = db_connect()->insert_id;
这是因为您的函数,它在每次调用时都会创建新的连接,尽管存在一些cargo cult静态变量 要使它工作,你必须使你的连接真正静态
function db_connect(){
static $connection;
if (!$connection) {
require_once __DIR__ . '/cfconfig.php';
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE);
$connection->set_charset('utf8');
}
return $connection;
}
现在您可以获得插入id了
$id = db_connect()->insert_id;
是否已成功插入记录?是否包含自动递增ID?是否成功插入记录?它是否包含自动递增的ID?