mysql的执行insert是不是有返回值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql的执行insert是不是有返回值相关的知识,希望对你有一定的参考价值。

mysql中的insert语句在添加成功时有影响行数和当前操作产生的id值。在php中可以使用mysql_insert_id()和mysql_affected_rows() 影响行数来进行判定,失败时是bool值 参考技术A 具体一点,mysql的执行,返回值与insert无关 参考技术B 成功返回自增的id,失败返回false 参考技术C 最基本的insert语句,插入成功的时候,返回成功的记录行数,比如你插入一行数据,插入成功返回值就是1,插入失败,返回0.
特殊情况,比如你想返回插入的这行数据的主键Id,也是可以做到的,你可以用keyProperty来设置,具体的设置可以自行百度,怕误导他人。

PHP中的mysql_query()函数的返回值是啥?

$insert=mysql_query($sql,$conn);

if ($insert)
echo("<script type='text/javascript'> alert('写入成功!');location.href='index.php';</script>");
else
echo("<script type='text/javascript'> alert('写入失败!');location.href='insert.php';</script>");


问题:
$insert=mysql_query($sql,$conn)返回的是一个结果集,同时其返回值又能被if判断,又是布尔类型的变量?那结果集和布尔型变量有什么关系?我看到百度上还有人说是指针变量...到底是什么?怎么能干这么多事...

布尔值 NULL ,false, 0 ," " ,都代表为假,

mysql_query 对于 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,打印出来是 类似于 “Resource id #3" 的一个字符串,所以就为真了。

这个 “Resource id #3" 就好比是一个指示牌, 连接着你要操作的数据,用函数操作他时,例如:mysql_fetch_array($insert), 他就把从数据库调出来的结果带到函数里做参数了。
参考技术A 对SELECT, SHOW, DESCRIBE, EXPLAIN 等语句,如果成功,返回类型为resource的值,如果失败,返回布尔型的FALSE

对UPDATE, DELETE, DROP,INSERT等语句,成功返回TRUE,失败返回FALSE
参考技术B 多看手册
mysql_query一般是用过来给MYSQL递交一个SQL语句去执行的

仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。
参考技术C mysql_select_db() 函数设置活动的 MySQL 数据库。

如果成功,则该函数返回 true。如果失败,则返回 false。
参考技术D 根据SQL语句类型,如果是SELECT语句那么返回是结果集(result类型),如果是INSERT,UPDATE这些类型则返回是布尔值(BOOL值),可以参考下手册。

以上是关于mysql的执行insert是不是有返回值的主要内容,如果未能解决你的问题,请参考以下文章

mysql的执行insert是不是有返回值

mysql的执行insert是不是有返回值

mysql的执行insert是不是有返回值

mysql的执行insert是不是有返回值

mysql不是自动增长的主键怎么利用ibatis返回值判断是不是插入成功

在ibatis和mysql环境下使用insert如何获取返回值