为了账号安全,请及时绑定邮箱和手机立即绑定

不需要调用mysqli函数来插入值吗?

不需要调用mysqli函数来插入值吗?

PHP
天涯尽头无女友 2023-07-08 17:55:06
我正在学习 MySQL 和 PHP,我已经看到使用此代码可以在数据库中插入值:$sql = "INSERT QUERY..."$insert = mysqli_query($connection, $sql);if($insert){ echo "Insert Worked";}else{ echo "Insert error". mysqli_error($connection);}正如你所看到的,这应该可行,但我不明白如何实现。如果您从不调用函数 mysqli_query,它只是存储在 $insert 变量中。是在if条件下调用的吗?另一件引起我注意的事情是,您在连接查询中得到了该插入的错误,这不是一件坏事吗?我的意思是,如果你在不同的查询中有很多错误,它就不太有用,这是寻找错误的方法吗?
查看完整描述

3 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

在大多数语言(包括 PHP)中,后面的任何内容=赋值运算符)都会在存储到给定变量之前进行计算。赋值运算符=后面的任何内容;都会被解析为表达式,并且该表达式可能包含函数调用。这些函数调用会立即计算,并且这些函数调用的结果将用于表达式的其余计算。

在您的情况下,mysqli_query()调用函数并插入行,然后将返回的值存储mysqli_query()在变量中$insert评估语句时不会调用它if

关于您的错误处理问题,每个连接一次运行 1 个查询,因此,如果您有多个查询,则需要运行一个查询,然后检查错误并连续执行此操作。

mysqli_error()另外,就像 @Dharman 提到的那样,您应该谨慎使用,因为除非您知道并且有一个经过深思熟虑的用例,否则不希望在生产中使用它。

查看完整回答
反对 回复 2023-07-08
?
白板的微信

TA贡献1883条经验 获得超3个赞

正在调用mysqli_query并将结果存储在$insert. 由于您使用的是插入语句,$insert因此将包含 hasTRUEFALSE,具体取决于插入语句是否成功。



查看完整回答
反对 回复 2023-07-08
?
慕村225694

TA贡献1880条经验 获得超4个赞

每个连接一次能够处理一个查询;这就是 MySQL 和其他客户端-服务器风格的数据库系统的工作方式。mysqli API 设计者决定通过连接对象而不是查询对象来访问错误。这是一个合理的决定;通常,像您这样的应用程序必须在运行新查询之前处理错误,因此在查询对象上保留错误意义不大。

错误由mysqli_query()返回的返回值表示为假。如果它返回正确,你就可以用它做更多的事情。如果您不确定“假”和“真”,请查阅它们。

但是,从根本上讲,这些决定是 API 设计者尽最大努力创建有用的 API 所做出的决定。

(当然,您确实mysqli_query()在代码示例中使用了..)


查看完整回答
反对 回复 2023-07-08
  • 3 回答
  • 0 关注
  • 141 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信