MySQLi PHP: 如何检查SQL INSERT语句是否完全成功

MySQLi PHP: 如何检查SQL INSERT语句是否完全成功

在本文中,我们将介绍如何在MySQLi中使用PHP来检查SQL INSERT语句是否完全成功。

阅读更多:MySQL 教程

MySQLi和SQL INSERT语句

MySQLi是MySQL的一个面向对象的改进版本,可以帮助我们更轻松地与MySQL数据库交互。SQL INSERT语句是一种向MySQL数据库中添加新数据的常用语句。目前,在PHP中使用MySQLi扩展来执行SQL INSERT语句是一种常见的方式。

下面是一个基本的示例。假设我们已经建立了一个名为“myDB”的数据库和一个名为“myTable”的表格,现在需要向该表格中添加一条记录。

//连接数据库
mysqli = new mysqli("localhost", "username", "password", "myDB");

//检查连接是否成功
if (mysqli -> connect_errno) {
  echo "Failed to connect to MySQL: " . mysqli -> connect_error;
  exit();
}

//准备SQL INSERT语句并执行sql = "INSERT INTO myTable (col1, col2, col3) VALUES ('value1', 'value2', 'value3')";
if (mysqli->query(sql) === TRUE) {
  echo "New record created successfully.";
} else {
  echo "Error: " . sql . "<br>" .mysqli->error;
}

//关闭连接
$mysqli->close();

在上面的代码片段中,我们首先使用mysqli_connect()函数连接到MySQL数据库。如果连接失败,我们将输出错误信息并退出程序。

然后,我们准备了一个SQL INSERT语句。它告诉MySQL数据库在myTable表中插入一条新记录,其中包含3个列(col1、col2和col3)和3个值(value1、value2和value3)。

如果SQL INSERT语句执行成功,将输出“New record created successfully.”,否则将输出错误信息。

最后,我们使用$mysqli->close()函数关闭与MySQL数据库的连接。

如何检查SQL INSERT语句是否完全成功

要检查SQL INSERT语句是否已完全成功,我们需要注意以下两个方面:插入的行数和插入的ID。

插入的行数

当执行SQL INSERT语句时,MySQLi会返回一个表示插入的行数的数字。如果该数字等于1,则表示SQL INSERT语句已成功执行并成功插入了1行数据。如果该数字不等于1,则表示SQL INSERT语句未完全执行或插入了多行数据。例如,如果我们要向myTable表中插入两行数据,我们可以执行以下代码:

//连接数据库
mysqli = new mysqli("localhost", "username", "password", "myDB");

//检查连接是否成功
if (mysqli -> connect_errno) {
  echo "Failed to connect to MySQL: " . mysqli -> connect_error;
  exit();
}

//准备SQL INSERT语句并执行sql = "INSERT INTO myTable (col1, col2, col3) VALUES ('value1', 'value2', 'value3'), ('value4', 'value5', 'value6')";
if (mysqli->query(sql) === TRUE) {
  num_rows = mysqli_affected_rows(mysqli);
  if (num_rows == 2) {
    echo "New records created successfully.";
  } else {
    echo "Error: " .sql . "<br>" . mysqli->error;
  }
} else {
  echo "Error: " .sql . "<br>" . mysqli->error;
}

//关闭连接mysqli->close();

在上面的代码片段中,我们使用了一个包含两个插入值列表和括号的SQL INSERT语句。如果执行成功,则MySQLi将返回2,这表示成功插入了2行数据。我们可以使用mysqli_affected_rows()函数来获取插入的行数,并检查该数字是否等于2。如果等于2,则表示SQL INSERT语句已成功执行并成功插入了2条新数据。

插入的ID

另一方面,有些情况下我们还需要获取插入数据的ID。例如,如果我们要在myTable表中插入一个新用户,并且需要在插入后将其ID存储在另一个表中,那么获取插入的ID就非常重要。

在MySQLi中,可以使用$mysqli->insert_id来获取最后一个插入的行的ID。例如,假设我们需要将一个名为“John”的新用户插入到myTable表中,并将其ID存储在另一个名为“user_id”的表中,我们可以执行以下代码:

//连接数据库
mysqli = new mysqli("localhost", "username", "password", "myDB");

//检查连接是否成功
if (mysqli -> connect_errno) {
  echo "Failed to connect to MySQL: " . mysqli -> connect_error;
  exit();
}

//准备SQL INSERT语句并执行sql = "INSERT INTO myTable (name, age, email) VALUES ('John', 30, 'john@example.com')";
if (mysqli->query(sql) === TRUE) {
  user_id =mysqli->insert_id;
  echo "New user created successfully. ID is " . user_id;
} else {
  echo "Error: " .sql . "<br>" . mysqli->error;
}

//关闭连接mysqli->close();

在上面的代码片段中,我们首先将一个名为“John”的新用户插入到myTable表中。如果SQL INSERT语句执行成功,则可以使用mysqli->insert_id来获取最后一个插入的行的ID,并将其存储在user_id变量中。最后,我们将输出“New user created successfully. ID is”和$user_id的值。

总结

在本文中,我们介绍了如何在MySQLi中使用PHP来检查SQL INSERT语句是否完全成功。我们强调了两个方面:插入的行数和插入的ID。插入的行数告诉我们是否成功插入了数据行,并允许我们检测是否发生了错误。插入的ID对于记录新插入的数据行的唯一标识符非常重要,并允许我们将数据与其他表中的数据相关联。希望本文对MySQLi的使用者有所帮助。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程