Home » Php » mysql – MySQLi PHP: Check if SQL INSERT query was fully successful using MySQLi

mysql – MySQLi PHP: Check if SQL INSERT query was fully successful using MySQLi

Posted by: admin July 12, 2020 Leave a comment

Questions:

I have this big function that gets a lot of different data and insert it into multiple tables.. Not all the data is always available so not all the SQL INSERT queries are successful. I need to check which SQL INSERT query was fully successful and which wasn’t to the do something with this data (like inserting into a log table or similar).

Just to give you an example of how I think it can be done:

$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
    }
}

I’m not completely sure this is the best way and if its always really show if the data was inserted into the table…
Any suggestions??

How to&Answers:

From the PHP Manual on mysqli_stmt::execute:

mysqli_stmt::execute
mysqli_stmt_executeExecutes a
prepared Query

Returns TRUE on success or FALSE on
failure.


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

You’re doing it right… What’s your dilemma?

Answer:

I believe you can use mysqli_stmt->affected_rows to return the number of rows inserted (or changed or deleted).