php - 将变量插入数组后使用内爆的问题

标签 php mysql arrays

我目前正在测试如何在将变量插入数组后对 mysql 查询使用简单的内爆。我只是无法绕过这个错误,我知道它说的是无效参数,但是数组已经设置好了,我知道它在我页面的另一部分使用几乎相同的代码工作。我想有些地方遗漏了一些' 或 "或 . or 但无论我如何更改它都不起作用。

感谢您的帮助!

这是我设置数组的部分:

$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

最佳答案

无效参数错误意味着您需要在 MYSQL 查询的字符串之间使用引号,例如 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

关于php - 将变量插入数组后使用内爆的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34797868/

相关文章:

php - 使用 PHP DOM 在 XML 文件中插入数据

php - 如何通过phpword库读取表格单元格内容

PHP 取消设置 sql 查询

mysql - 向函数 st_geometryfromwkb 提供的 GIS 数据无效

arrays - 在 Julia 中初始化数组

javascript - 即使我使用 Number() 函数,数组的最后一个元素始终为 NaN

php - Paypal :从沙箱上线

MySQL:从表中获取未包含的日期

将程序转换为使用函数,现在运行时不执行任何操作

php - ImageMagick透明PNG背景