MySQLi PHP:使用 MySQLi 检查 SQL INSERT 查询是不是完全成功

Posted

技术标签:

【中文标题】MySQLi PHP:使用 MySQLi 检查 SQL INSERT 查询是不是完全成功【英文标题】:MySQLi PHP: Check if SQL INSERT query was fully successful using MySQLiMySQLi PHP:使用 MySQLi 检查 SQL INSERT 查询是否完全成功 【发布时间】:2011-02-21 17:55:24 【问题描述】:

我有这个大函数,它可以获取大量不同的数据并将其插入到多个表中。并非所有数据都始终可用,因此并非所有 SQL INSERT 查询都成功。我需要检查哪个 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
    

我不完全确定这是最好的方法,如果它总是真正显示数据是否已插入表中...... 有什么建议吗??

【问题讨论】:

【参考方案1】:

来自 mysqli_stmt::execute:

上的 php 手册

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

成功时返回 TRUE,否则返回 FALSE 失败。


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

你做对了......你的困境是什么?

【讨论】:

错误,不,它应该是$success = TRUE;,因为您不想测试是否相等,而是想为 $success 变量赋值。【参考方案2】:

我相信您可以使用mysqli_stmt->affected_rows 来返回插入(或更改或删除)的行数。

【讨论】:

以上是关于MySQLi PHP:使用 MySQLi 检查 SQL INSERT 查询是不是完全成功的主要内容,如果未能解决你的问题,请参考以下文章

缺少 mysqli 扩展。请检查您的 PHP 配置,Windows 7 [关闭]

为啥登陆phpadmin的界面提示缺少mysqli扩展,请检查php配置

为啥我的 IP 检查方法不起作用? PHP/Mysqli

缺少 mysqli 扩展。请检查您的 PHP 配置

缺少 mysqli 扩展。请检查您的 PHP 配置

php安装缺少mysqli扩展的原因及解决方法