Php 注意:未知:跳过第0行未知中的数字键1
我有以下代码:Php 注意:未知:跳过第0行未知中的数字键1,php,Php,我有以下代码: include 'includes/connect.php'; $sp= "clot"; $selectall = mysqli_prepare($connection, "SELECT Count FROM prices WHERE Category = ? ORDER BY ppu LIMIT 11"); mysqli_stmt_bind_param($selectall, 's', $sp); mysqli_stmt_execute($selectall); $result
include 'includes/connect.php';
$sp= "clot";
$selectall = mysqli_prepare($connection, "SELECT Count FROM prices WHERE Category = ? ORDER BY ppu LIMIT 11");
mysqli_stmt_bind_param($selectall, 's', $sp);
mysqli_stmt_execute($selectall);
$resulttotal = mysqli_stmt_get_result($selectall);
$x=1;
while($row = mysqli_fetch_array($resulttotal, MYSQLI_ASSOC)){
$_SESSION[$x] = $row['Count'];
$x++;
}
$y=1;
while(isset($_SESSION[$y])){
if($y==11){
$_SESSION['nextstart'] = $_SESSION[$y];
unset($_SESSION[11]);
}
else{
echo($y);
echo("<br>");
echo($_SESSION[$y]);
echo("<br>");
$y++;
}
}
查找这个错误,我能找到的唯一答案是将数组放入超全局将导致此错误。我不相信我已经把数组放进了,$row['Count']
是一个字符串,不是吗?我在stackoverflow上找不到有关此错误的任何条目
导致此错误的原因是什么?我应该如何修复它?(所显示的代码只是我在试验和规划一种使用我的数据库进行无休止分页的设计。)PHP会话存储机制最初是围绕“注册”变量构建的,因此
$\u session
中的键必须是可以单独作为变量处理的名称
这意味着$\u会话[42]
无效,因为$42
不是有效的变量名,而且由于$foo[42]
和$foo['42']
引用了相同的内容,$\u会话['42']
也无效
解决方案是在会话变量上使用前缀(例如,$\u会话['row\u counts'.$x]=$row['count'];
),或者将它们组成一个数组,您可以在以后循环使用它们(例如,$\u会话['row\u counts']=array();…$\u会话['row\u counts'.[$x]=$row['counts'];
)
注意:这个限制实际上是将会话写入磁盘时使用的“序列化处理程序”的一部分,这就是为什么错误没有上下文(它们是在PHP关闭时触发的)。在PHP的最新版本中,有一个设置没有此限制:
php_serialize可从PHP5.5.4获得。php_serialize在内部使用纯序列化/非序列化函数,并且没有php和php_二进制文件所具有的限制。旧的序列化处理程序无法在$会话中存储数字索引,字符串索引也不能包含特殊字符(|和!)。使用php_serialize避免在脚本关闭时出现数字索引或特殊字符错误
会话$\u中的键必须是本身可以作为变量处理的名称。
,TIL。谢谢和+1。
Notice: Unknown: Skipping numeric key 1 in Unknown on line 0