猿问

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

我正在学习 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条件下调用的吗?


另一件引起我注意的事情是,您在连接查询中得到了该插入的错误,这不是一件坏事吗?我的意思是,如果你在不同的查询中有很多错误,它就不太有用,这是寻找错误的方法吗?


天涯尽头无女友
浏览 142回答 3
3回答

PIPIONE

在大多数语言(包括 PHP)中,后面的任何内容=(赋值运算符)都会在存储到给定变量之前进行计算。赋值运算符=后面的任何内容;都会被解析为表达式,并且该表达式可能包含函数调用。这些函数调用会立即计算,并且这些函数调用的结果将用于表达式的其余计算。在您的情况下,mysqli_query()调用函数并插入行,然后将返回的值存储mysqli_query()在变量中$insert。评估语句时不会调用它if。关于您的错误处理问题,每个连接一次运行 1 个查询,因此,如果您有多个查询,则需要运行一个查询,然后检查错误并连续执行此操作。mysqli_error()另外,就像 @Dharman 提到的那样,您应该谨慎使用,因为除非您知道并且有一个经过深思熟虑的用例,否则不希望在生产中使用它。

白板的微信

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

慕村225694

每个连接一次能够处理一个查询;这就是 MySQL 和其他客户端-服务器风格的数据库系统的工作方式。mysqli API 设计者决定通过连接对象而不是查询对象来访问错误。这是一个合理的决定;通常,像您这样的应用程序必须在运行新查询之前处理错误,因此在查询对象上保留错误意义不大。错误由mysqli_query()返回的返回值表示为假。如果它返回正确,你就可以用它做更多的事情。如果您不确定“假”和“真”,请查阅它们。但是,从根本上讲,这些决定是 API 设计者尽最大努力创建有用的 API 所做出的决定。(当然,您确实mysqli_query()在代码示例中使用了..)
随时随地看视频慕课网APP
我要回答