2017-04-16 17 views
0

私はpostgresqlデータベースからデータを取得しようとしていますが、エラーが発生します:pg_last_error()は、パラメータ1がリソース、/path/to/query.phpに指定されたオブジェクトを期待しています オブジェクトではないリソースとして。任意のアイデアをどのようにこれを修正するには?pg_queryがエラーをスローする

SQLは、このコードで動作します:

foreach ($conn->query($sql1) as $row) 
{ 
print $row["Site_ID"] . " "; 
print $row["Site_name_1"] . "<br /> "; 

} 

しかし、私は代わりにpg_queryを使用する際に問題がarrises。ここ
は私のコードです:

<?php include 'header.php'; ?> 
<div class='container'> 
<?php include 'menu.php'; ?> 
<?php include 'PDO_connect.php'; ?> 

<?php 

$sql1='SELECT "Site_ID", "Site_name_1" FROM "Sites" ORDER BY "Sites"."Site_ID" ASC'; 

$result1 = pg_query($conn,$sql1); 
if(!$result1) { 
    echo "There is an error!"; 
    echo pg_last_error($conn); 
} 
?> 

私の接続情報

<?php 
try { 
$dbuser = 'usr'; 
$dbpass = 'pwd'; 
$host = "localhost"; 
$dbname="db"; 

$conn = new PDO('pgsql:host=localhost;dbname=db', $dbuser, $dbpass); 
}catch (PDOException $e) { 
echo "Error : " . $e->getMessage() . "<br/>"; 
die(); 
} 
?> 
+0

することができます'$ conn'の宣言を表示しますか?その値はvar_dump($ var)で確認できます。それはpg_connectによって返されるリソースでなければなりません:http://php.net/manual/en/function.pg-connect.php – JSLirola

+0

var_dump($ conn)は以下を返します:object(PDO)#1(0){} –

+1

私は思いますPDOとpg_ *メソッドを混在させていますが、PDOに接続する場合は、[PDO関数](http://php.net/manual/en/class.pdo.php)を使用してください。この類似の質問をチェック:http://stackoverflow.com/questions/16108784/connect-to-postgresql-using-pdo – JSLirola

答えて

0

たように、これは私の問題を解決し、私はPDOとのpg_connectを混合して、コメントで述べている:

<?php 
$servername = "localhost"; 
$username = "usr"; 
$password = "pwd"; 
$database = "db"; 
?> 

<?php 
    $conn = pg_connect("host=localhost dbname=$database user=$username password=$password")or die("Can't connect to database".pg_last_error()); 
?> 
関連する問題