MySQLi内部加入问题[重复]

Posted

技术标签:

【中文标题】MySQLi内部加入问题[重复]【英文标题】:MySQLi Inner Join issue [duplicate] 【发布时间】:2021-04-17 17:12:37 【问题描述】:

我在通过 SELECT 查询引用的论坛上有两个表。一个表是 phpBB_users 表,它保存成员的基本数据,而第二个表 phpbb_profile_fields_data 保存地址、电子邮件、电话等详细信息。两个表都使用 user_id 作为键。我的表单选择了 $smode 参数,它列出了要搜索的各种列标题和 $parameter 变量,它输入要搜索的实际数据。结果显示在 html 表格中。

这是我的代码:

$conn = new mysqli('localhost',$user,$pass,$database);

$sql = "SELECT * FROM phpbb_users 
INNER JOIN phpbb_profile_fields_data ON phpbb_users.user_id = phpbb_profile_fields_data.user_id
WHERE   $smode = $parameter
ORDER BY username";
$result = $conn->query($sql);

如果我选择 group_id(在 phpbb_users 表中)作为我的 $smode 变量并输入给定的组号作为 $parameter 变量,我会得到该组中成员的一个很好的列表。如果我将 $smode 变量更改为 pf_user_lastname (位于 phpbb_profile_fields_data 表中)并输入一个常见的姓氏,我不会得到任何结果。如果我使用用户名作为 $smode 变量(在 phpbb_users 表中),情况也是如此。我没有得到任何结果。 group_id 列是一个整数,而其他两个是字母数字变量,但是当我将 $smode 更改为 pf_mh_year(phpbb_profile_fields_data 表中的 4 位整数)时,我仍然没有得到任何结果。我在 error_log 中没有收到错误消息,因为 $result->num_rows 为零 - 除了列表显示的第一种情况。

【问题讨论】:

echo $sql 添加到您的脚本并在PHPMyAdmin(或任何其他工具)中验证SQL 语句 【参考方案1】:

我确实回显了 $sql,它看起来不错。但是当我按照您的建议在 PHPMyAdmin 中对其进行测试时,它表明我需要将 $parameter 值放在单引号中。不知道为什么它在没有它们的情况下对一个整数列起作用,但对另一个整数列不起作用,但无论哪种方式,现在引号都已到位,一切正常。

【讨论】:

以上是关于MySQLi内部加入问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章

上一个和下一个按钮(php和mysqli)不断收到500个内部服务器错误[重复]

PHP MySQL内部连接具有相同的列名[重复]

mysqli连接在函数内部不起作用? [复制]

mysqli内部连接:其他表中不存在数据

如何在 mysqli 准备语句中使用多个内部连接和多个 WHERE 子句? [复制]

Google Play 封闭和内部测试轨道的问题 [重复]