我正在测试在将变量推入数组后如何使用简单的内爆来进行mysql查询。我只是无法解决错误,我知道它说,无效的参数,但数组已经设置,我知道它在我的页面的另一部分工作与几乎完全相同的代码..我想有一些地方缺少一些'或'或。或者无论我改变什么都不起作用。
我感谢任何帮助!
以下是我设置数组的部分:
$LFBsubjects = Array();
$LFBsubjects[] = $dataset2['subject1'];
$LFBsubjects[] = $dataset2['subject2'];
我通过print_r打印的输出是:
Array ( [0] => Mathematics [1] => English )
现在出现了查询,它使用了内爆函数:
$SelectTSubjectsQuery = "
SELECT subject_id FROM subjects
WHERE subject IN (".implode(',', $LFBSubjects).")";
$statement = $pdo->query($SelectTSubjectsQuery);
错误是:
Warning: implode(): Invalid arguments passed in /var/www/xxx/html/lfb.php on line 626
答案 0 :(得分:0)
无效的参数错误意味着您需要在字符串之间使用MYSQL QUERY之类的引号,例如IN ("test")
您可以像:
$values = implode("','", $LFBsubjects);
$SelectTSubjectsQuery = " SELECT subject_id FROM subjects WHERE subject IN ('".$values."')";
<强>解释强>
当你在MYSQL中使用IN RANGE作为字符串值时,你的数组包含字符串值,而不是你需要用引号传递它。
基本示例:
$SelectTSubjectsQuery = "
SELECT subject_id FROM subjects
WHERE subject IN ('val1','val2')";
更新1
检查您的评论后,您在内幕中使用了错误的变量名称
$LFBSubjects
这应该是这样的:
$LFBsubjects // with small s