为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取对数组中传入的值的查询结果(mySQL 和 PHP)

如何获取对数组中传入的值的查询结果(mySQL 和 PHP)

PHP
蝴蝶不菲 2022-01-14 17:27:40
我正在开发一个页面,用户可以在该页面上选择通过 ZIP 文件下载哪些过期发票。我正在更改现有查询以仅提取那些已由用户检查的发票,其中作业 ID 号通过数组发送到 PHP 函数。下载所有发票的现有查询是:$sql = 'select i.jobid   from invoice i   join job j     on j.id = i.jobid  where i.total > 0 ';$Q = $this->read_db->query($sql, array($days));$days 是显示发票的天数。我已将其更改为:$ids = implode(',', $invids);  // $invids is the array sent in of invoice numbers$sql = 'select `i`.`jobid` from `invoice` `i` WHERE `i`.`jobid` IN ' . $ids . ' join `job` `j` on `j`.`id` = `i`.`jobid` where `i`.`total` > 0 ';$Q = $this->read_db->query($sql, array($days));当我尝试回显 $Q->result() 时,我得到一个错误Call to a member function result() on boolean。我对 mySQL 相当陌生,因此非常感谢任何帮助。
查看完整描述

1 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

您的查询格式非常奇怪且无效,这就是它返回布尔值(false)的原因。

SELECT i.jobid FROM `invoice` i JOIN `job` j ON j.id = i.jobid WHERE i.total > 0
SELECT i.jobid FROM `invoice` i JOIN `job` j ON j.id = i.jobid WHERE i.total > 0 AND i.jobid IN('.$ids.')

此外,请始终使用 PDO 或 Prepared MySQLI。

https://www.w3schools.com/php/php_mysql_prepared_statements.asp


查看完整回答
反对 回复 2022-01-14
  • 1 回答
  • 0 关注
  • 194 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号