php - 如何检查表列中是否存在特定值

标签 php mysql sql foreign-keys

我的数据库中有 2 个表,它们通过名为 id 的列有外键关系。 因此,我有一个表中的 id(代表一个用户,是用户表中的主键),并且想要检查该用户在另一个表中是否有现有数据。

因此,我希望针对另一个表中名为 id 的列运行 id,如果该列中存在该 id,则返回值 true。 我目前没有收到任何错误,但该方法没有返回任何值。所以我一定做错了什么...任何帮助表示感谢!

这是我在一个文件中的类和方法:

class test {

    public function dataExists ()
        {
            $db = Database::getInstance();
            $classUser = new user();
            $userId = $classUser->getUserData($_SESSION['id']);
            $user = $userId['id'];

            $query = $db->prepare("`id` SELECT * FROM `data`");

            if ($user == $query)
            {
                return true;
            } else {
                return false;
            }
        }
}

在我的 View 文件中我有这个:

$classTest = new test();
$exists = $classTest->dataExists();

if ($exists == true) {

echo '';

}

最佳答案

当前您正在检查是否 mysqli_stmt对象(从 prepare() 返回)等于一个数字。您认为这种比较应该如何进行?

您可以通过 num_rows 来完成此操作,这非常直接地取自 the manual

public function dataExists () {
    //...
    if ($statement = $db->prepare("SELECT * FROM `data` WHERE `id`=?")) {
        $statement->bind_param("i", $user);
        $statement->execute();
        //...
        return ($statement->num_rows > 0);
    }
}

由于您正在使用类,因此您可能希望将查询结果存储在某处 - 询问它们的存在意味着您可能想要使用它们。

我将 return 语句缩短为

if ($a==$b) {
    return true;
} else {
    return false;
}

等于

return ($a==$b);

关于php - 如何检查表列中是否存在特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20595822/

相关文章:

php - 在 PHP 中从 SQL 表获取单个结果

c# - BLL,DAL,BO,插入数据

php - ORDER BY 列内容 MSQL PHP

php - 使用 PHP 缩进 HTML(5) 时出现问题

php - CSS 无法将表格宽度设置为随屏幕宽度动态变化

mysql - 2 临时表 mysql 使用 union

mysql - 用于国际化的高效 MYSQL DB 结构

sql - Oracle sql - join 和 group by 子句提取订单最多的顶级客户

sql - 识别整个数据库中复合 PK 中包含的所有列

php - php 中的 mysql 语法错误,输入 phpmyadmin 时工作正常