Check if SQL INSERT was successful

I am currently learning PHP and am using the query below to insert values into my MySQL table.
I would like to check whether or not the values were inserted correctly. I have tried writing an IF statement and have searched through numerous examples, none of which seem to be working.

I would appreciate any help in steering me in the right direction.

$dd_tracking_insert = $dd_tracking_conn->query("INSERT INTO $dd_tracking_table_name (invoice_id, user_id, gc_bill_id, gc_bill_amount, gc_bill_fees, gc_bill_status, gc_bill_created) VALUES ('$invoice_id', '$user_id', '$gc_transaction_id', '$invoice_amount', '$gc_fees', '$gc_status', now())");

IF inserted correctly - echo "inserted".
If Error: was not inserted -echo "error: values where not inserted correctly."

Link to full code here


Solution 1:

To check if your INSERT was successful, you can use mysqli_affected_rows().

  • http://php.net/manual/en/mysqli.affected-rows.php

Returns the number of rows affected by the last INSERT, UPDATE, REPLACE or DELETE query.

Object oriented style

int $mysqli->affected_rows;

Procedural style

int mysqli_affected_rows ( mysqli $link )

And check for errors against your query and for PHP.

References:

  • http://php.net/manual/en/mysqli.error.php
  • http://php.net/manual/en/function.error-reporting.php

Your present code is open to SQL injection if user interaction is involved.

Use mysqli with prepared statements, or PDO with prepared statements.