我收到以下
Notice: Undefined variable: array(1,2) in C:\[PATH]\index.php on line 21
但'阵列'仍能正常运作。
我已经从字母组合和SQL查询结果中定义了变量。
代码是:
<?php
$pageId = '1';
require_once('includes/dbConnect-SQL.php');
if($dbSuccess) {
$qry = "SELECT GROUP_CONCAT(userId) userId
FROM security WHERE pageId = '$pageId'";
$result = mysql_query($qry);
}
while($row = mysql_fetch_array($result,MYSQL_BOTH)) {
$userArray = $row['userId'];
$rul = 'array(' . $userArray . ')'; }
$requiredUserLevel = $$rul;
$defaultDir = 'secure/';
include($defaultDir . "secure.php");
?>
我将表echo'的结果称为1,2,3等,这是我想要的,但我需要$requiredUserLevel
实际上看起来像这样:
$requiredUserLevel = array(1,2,3);
将group_concat用作数组括号中的数字。
感谢任何帮助,我不知道我在做什么。
答案 0 :(得分:1)
$rul
将是一个字符串。当$rul = 'array(1,2,3)';
和$$rul
一样使用它时,它会查找名为array(1,2,3)
的变量。
只需这样做。 -
while($row = mysql_fetch_array($result,MYSQL_BOTH)) {
$requiredUserLevel = explode(',' , $row['userId']);
}
如果它正在获取单行,那么也不需要该循环。
答案 1 :(得分:0)
更改
$requiredUserLevel = $$rul;
到此:
$requiredUserLevel = $rul;
现在,$rul
的值变成了变量,这就是你从PHP获得错误的原因。
答案 2 :(得分:-1)
这不是错误,它是notice
!如果您不想获得此类通知,请在此行中添加php.ini:
error_reporting = E_ALL & ~E_NOTICE
祝你好运!