php - 为什么在检查数据库查询是否成功时要同时检查值和类型?

标签 php mysql database

当我在 w3schools 学习 MySQL 和 PHP 时,我在关于插入数据的页面上遇到了这个。

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?> 

当检查查询成功时,为什么要检查两者是否相同类型且相等?如果只是这样不就好了吗?

if ($conn->query($sql) == TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

最佳答案

mysqli::query() 失败时返回 false,另一个结果将始终不为 false。如果不需要对 mysqli_result 使用特殊逻辑,则可以不使用 true 来编写等于。 docs

if ($conn->query($sql)) 
{
  //
} else 
{
  //
}

关于php - 为什么在检查数据库查询是否成功时要同时检查值和类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48570124/

相关文章:

php - 通过 getJSON 将变量发送到数据库查询的最佳方法是什么?

php - 使用 PHP 和 MySQL 进行搜索过滤

ruby-on-rails - 事件记录 : Change the values of certain items in the database through terminal

c# - 在 C# 中将对象、结构或数组插入 MySQL 表

用于替换两个搜索字符串的 PHP 内置函数

php - 如何用正则表达式解析html标签?

PHP 扩展函数 array_init 抛出 'return_value is undeclared'

MySQL组加入空值

java - 不在 onCreate 方法中添加 SQLite 条目

php - 使用 gettext 和 codeigniter 的多语言支持,最佳实践?