将数据插入MySql DB并显示插入是成功还是失败

时间:2012-07-25 12:52:31

标签: php mysql

我正在将数据插入MySQL数据库,如果插入失败,我需要提供相应的错误消息,指示如此。根据我的代码,如果插入成功或失败,我将Echo-ing消息Inserted

我想要做的是仅在数据插入成功时回显Inserted消息,如果失败则返回fail。如何修改我的代码呢?

<?php

mysql_connect("localhost", "root", "123") or die(mysql_error());
mysql_select_db("swm_database") or die(mysql_error());

mysql_query("INSERT INTO PEOPLE (NAME ) VALUES ('COLE')")or die(mysql_error()); 

echo "Inserted";
?>

5 个答案:

答案 0 :(得分:28)

$result = mysql_query("INSERT INTO PEOPLE (NAME ) VALUES ('COLE')"));
if($result)
{
echo "Success";

}
else
{
echo "Error";

}

答案 1 :(得分:4)

根据书PHP and MySQL for Dynamic Web Sites (4th edition)

示例:

$r = mysqli_query($dbc, $q);

对于简单查询,例如 INSERT 更新删除等(不返回记录),$r结果的变量 - 缩写将是 TRUE FALSE ,具体取决于查询是否成功执行。

请记住,“已成功执行”意味着它无误地运行;它 并不意味着查询的执行必然具有所需的结果;你需要测试它。

然后如何测试?

虽然mysqli_num_rows()函数将返回 SELECT 查询生成的行数,但mysqli_affected_rows()会返回受 INSERT ,更新删除查询。它的使用方式如下:

$num = mysqli_affected_rows($dbc);

mysqli_num_rows()不同,函数采用的一个参数是数据库连接( $ dbc ),而不是上一个查询的结果( $ r

答案 2 :(得分:3)

INSERT查询后,您可以使用ROW_COUNT()检查插入操作是否成功:

SELECT IF(ROW_COUNT() = 1,  "Insert Success", "Insert Failed") As status;

答案 3 :(得分:2)

答案 4 :(得分:1)

if (mysql_query("INSERT INTO PEOPLE (NAME ) VALUES ('COLE')")or die(mysql_error())) {
  echo 'Success';
} else {
  echo 'Fail';
} 

虽然你有or die(mysql_error()),但是当它失败时它会在屏幕上显示mysql_error()。如果不是理想的结果,你应该删除它