2010-05-20 81 views
4

我有这个大函数可以获取大量不同的数据并将其插入到多个表中。并非所有数据都始终可用,因此并非所有的SQL INSERT查询是成功的。我需要检查哪个SQL INSERT查询是完全成功的,哪些不是用这些数据做什么(像插入日志表或类似的东西)。MySQLi PHP:使用MySQLi检查SQL INSERT查询是否完全成功

只给你的如何,我认为这是可以做到的例子:

$sql = 'INSERT INTO data_table (ID, column1, column2) VALUES(?, ?, ?)'; 

if ($stmt->prepare($sql)) { 
    $stmt->bind_param('iss', $varID, $var1, $var2); 

    if ($stmt->execute()) { 
     $success == TRUE; //or something like that 
    } 
} 

我不能完全肯定这是最好的办法,如果它总是真的显示,如果数据被插入到表... 有什么建议?

回答

11

从PHP手册上mysqli_stmt::execute

mysqli_stmt::execute - mysqli_stmt_execute - 执行一个 准备查询

成功返回TRUE或FALSE的 失败。


if ($stmt->execute()) { // exactly like this! 
    $success = true; 
} 

你这样做是正确的...你叫什么难题呢?

+0

错误,不应该读取'$ success = TRUE;'因为您不想测试是否相等,但是想为$ success变量赋值。 – wimvds 2010-05-20 10:30:09

+0

@wimvds:哎呀!对,谢谢。 – 2010-05-20 10:46:03