php - MySQLi 内部连接问题
问题描述
我在一个论坛上有两个表,我通过 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 为零 - 除了列表显示的第一种情况。
解决方案
我确实回显了 $sql ,它看起来不错。但是当我按照您的建议在 PHPMyAdmin 中对其进行测试时,它表明我需要将 $parameter 值放在单引号中。不知道为什么它在一个整数列没有它们的情况下工作,但不是另一个,但无论哪种方式,既然引号已经到位,一切都会正常工作。
推荐阅读
- ios - pod install 向我提出错误如何解决
- python - 根据其他列值编辑熊猫数据框中的值
- java - 启用发布者确认后,设置队列长度限制并将溢出设置为拒绝发布,为什么我收到的确认回调中的原因为空?
- ruby-on-rails - AWS EC2 Ubuntu 服务器上的 Rails 5 应用程序:Errno::ENOSPC:设备上没有剩余空间
- powerbi - 跨表的 Power BI 角色筛选器
- android - MotionLayout 多个过渡
- ios - amp-img 图像未在 iphone 上显示
- entity-framework - 在 EF 中使用 ANY 搜索儿童模型非常慢
- asp.net - 当至少有 2 人连接时,SignalR 使网站挂起
- javascript - 我需要一个正则表达式来匹配字符串