当我执行print_r时,我在数组块之间得到一个数字1。我不知道它来自哪里。
这导致我的日志出错。我可以通过使用is_array进行测试来解决这个问题,但我想知道它来自何处。
我正在进行两次查询,但我在那里有第三个数组。发生了什么?????
mysqli_result Object
(
[current_field] => 0
[field_count] => 2
[lengths] =>
[num_rows] => 110
[type] => 0
)
mysqli_result Object
(
[current_field] => 0
[field_count] => 1
[lengths] =>
[num_rows] => 12
[type] => 0
)
1 <-------------------------------------HERE
mysqli_result Object
(
[current_field] => 0
[field_count] => 1
[lengths] =>
[num_rows] => 1
[type] => 0
)
$this->conn->query("CALL phoneIsRegistered($phone,@phone)");
$res = $this->conn->query("SELECT @phone");
$result = mysqli_query($this->conn, $query) or die('Error: '.mysqli_error($this->conn));
if($result)
{
while($row = $result->fetch_object())
{
if($row)
{
print_r($row);
}
}
$this->disconnect();
}
在我开始尝试找到它之前,这就是循环的样子。
$this->connect();
$result = mysqli_query($this->_conn, $query) or die('Error: '.mysqli_error($this->conn));
if($result){
$i=0;
$res = array();
while($row = $result->fetch_object()){
if($row){
$res[$i++] = $row;
}
}
$this->disconnect();
return $res;
}else{
return false;
}
答案 0 :(得分:0)
我敢打赌你喝啤酒,在某些时候将mysqli_results添加到你的数组中,你将true
值推入数组,也许当你处理的变量结果不是< / em>是一个有效的mysql_result或由于一些其他错误的检查或比较。
您必须向我们展示您用来填充数组的完整循环。
答案 1 :(得分:0)
每当我使用print_r时,我看到这些1也出现了很多。我相信这个页面会回答你的问题。
Number Appears after Array Stored in SESSION
它不应该伤害任何东西......
答案 2 :(得分:0)
除了使用print_r
或vardump
之外,您还应考虑使用FirePHP或PHP Quick Profiler来帮助您调试和显示变量的值。
使用FirePHP,您可以将值显示在Firebug的控制台中。使用PHP Quick Profiler,页面底部会添加一个控制台,可用于显示您需要的任何值。