2013-04-02 24 views
0

我想在数据库中打印出一些记录表格:警告:pg_fetch_array():3不是有效的PostgreSQL结果资源

session_start(); 
if(!isset($_SESSION['studentnum'])){ 
    echo "Please "."<a href='login.php'>login</a>"; 
    exit; 
} 

$host = "localhost"; 
$username = "xyz"; 
$password = "abc"; 
$database = "mno"; 
$port = "5432"; 

$dbh = pg_connect("host=".$host." port=".$port." dbname=".$database." user=".$username." password=".$password); 
if (!$dbh){ 
    die("Error in connection: ".pg_last_error()); 
} 
$studentnum = $_SESSION['studentnum']; 


$sql = "select * from project.student s, project.courses c 
where s.student_num = c.student_num and s.student_num='".$studentnum."'"; 
$result = pg_query($sql) or die('Query failed: ' . pg_last_error()); 
pg_free_result($result); 
pg_close($dbh); 

然后

<?php 
while ($line = pg_fetch_array($result)) { <= this is line 52 
    echo "\t<tr>\n"; 
    foreach ($line as $col_value) { 
     echo "\t\t<td>$col_value</td>\n"; 
    } 
    echo "\t</tr>\n"; 
} 
?> 

但我得到这个错误:

SCREAM: Error suppression ignored for 
(!) Warning: pg_fetch_array(): 3 is not a valid PostgreSQL result resource in D:\wamp\www\records.php on line 52 

我做错了什么?我在其他地方使用了相同的代码,它工作,所以我不知道这里缺少什么。

+1

请使用PDO驱动程序并准备好语句! –

+0

这是什么意思?我很抱歉,但我是新来的:) – Chin

+0

无关先前的评论,你可以粘贴导致第52行的实际代码?我们这里有什么没有告诉我们很多。您的查询失败的可能性很高,因为其他人(死亡声明可以抓到它) –

回答

0

我想通了。我在使用之前不小心拨打了pg_free_result($result);$result

+0

标记为已回答。 –

相关问题