2013-03-01 52 views
0

我是一名初学者程序员,并且通过mysqli_query从phpmyadmin获取信息有点麻烦。我首先连接到数据库,然后尝试从数据库内的表cbo获取信息。然后我打印出来的查询结果不是来自表格的信息。相反,这是我得到的。mysqli_query返回意外输出

mysqli_result对象 ( [current_field] => 0 [FIELD_COUNT] => 8 [长度] => [NUM_ROWS] => 12 [型] => 0 )

这里是我正在使用的代码。转储只是回应变量。

<?php 
    $con = mysqli_connect("localhost", "root", "harvard", "cbo projections"); 
    if (mysqli_connect_errno()) { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
    $result = mysqli_query($con,"SELECT * FROM cbo"); 
    dump($result); 
?> 

感谢您的帮助。

回答

3

$result只是一个包含结果集的资源。你必须从中获取数据。阅读mysqli_fetch_assocmysqli_fetch_array

例:

if ($result = mysqli_query($link, $query)) { 
    while ($row = mysqli_fetch_assoc($result)) { 
     //Display fields here according to your table structure 
    } 
    mysqli_free_result($result); 
} 

编辑

是的,为什么不呢:你可以做类似

while ($row = mysqli_fetch_assoc($result)) { 
     $records[]=$row; 
    } 

这将创建一个数组命名记录其中将包含所有提取的行和t您可以稍后访问该阵列并相应地进行处理

+0

谢谢。即时获得第一排。我将如何循环以获得其他人? – 2013-03-01 06:06:58

+0

这个while循环应该已经循环了所有返回的行 – 2013-03-01 06:08:18

+0

有没有什么办法可以将我的表中的每一行保存到一个单独的变量列表中? – 2013-03-01 06:13:16

2

这就是mysqli对象,您要如何处理它?您应该阅读约http://www.php.net/manual/es/function.mysql-fetch-assoc.php,http://www.php.net/manual/en/function.mysql-fetch-object.phphttp://www.php.net/manual/en/function.mysql-fetch-array.php

例如:

<?php 

$con=mysqli_connect("localhost", "root", "harvard", "cbo projections"); 
if (mysqli_connect_errno()) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
$result = mysqli_query($con,"SELECT * FROM cbo"); 
while ($row = mysql_fetch_assoc($result)) { 
    var_dump($row); 
} 

?> 
1
$result = mysql_query($con,"SELECT * FROM cbo"); 
$rows = array(); 
while ($row = mysql_fetch_assoc($result)) { 
    $rows[] = $row; 
} 
print_r($rows); 
+0

谢谢。唯一的问题是我只拿到第一排。我将如何获得其余的行? – 2013-03-01 06:03:07

+0

Odil这不会按预期工作。你错误地将mysqli与mysql扩展混合在一起 – 2013-03-01 06:05:15