2009-08-29 6 views
0

PHPがpg query paramsでリソースがfalseであるかどうかを確認するにはどうすればいいですか?PHPでpg_query_paramsの戻り値を確認する

は、私はそれが私の第二の警告のみsymptonのようですので、正しい次の警告

Warning: pg_query_params() [function.pg-query-params]: Query failed: ERROR: invalid input syntax for integer: "" in /var/www/codes/index.php on line 120 

私は$dbconnを使用するを与える失敗し

$row = pg_num_rows ($result); 
if ($row !== 0) 
     echo "hurray"; 
else 
     echo "argh"; 

次のコードを実行します。 これは整数の無効な型です。

$result = @pg_query_params($dbconn, "SELECT * FROM SOME_TABLE", array()); 
if($result !== FALSE) 
{ 
    $row = @pg_num_rows($result); 
    if ($row !== 0) 
     echo "hurray"; 
    else 
     echo "argh"; 
} 
else 
{ 
    echo "Seems, your query is bad."; 
} 

あなたは$結果を使用する前に、あなたがそれをチェックする必要があります。

私のクエリは、これを試してみてください。この

$dbconn = pg_connect("host=localhost port=5432 dbname=masi user=masi password=123"); 
$result = pg_query_params ($dbconn, 
    'SELECT question_id 
    FROM questions 
    WHERE question_id = $1', 
    array ($question_id) 
); 
+0

pg_query_params()に渡すクエリに問題があるようです。編集をロールバックして、下の回答が意味をなさないようにして、新しい質問を投稿するのが最善です。そして、エラーを引き起こす正確なpg_query_params(...)呼び出しを含めることを忘れないでください。そうでなければ、問題が何であるかを推測できます。 – Inshallah

答えて

3

です。

+0

!==を使用してFALSEをチェックするのは一般的には良い考えですが、この場合はそれほど重要ではありません。問合せ結果は、ブール値FALSE以外の他の種類のFALSEになることはありません。 – Inshallah

+0

**あなたのコマンドで@の目的は何ですか?** –

+1

@ - エラー/警告/通知のレポートを防ぐ –

1

"NULLクエリ"と言うときは、結果の行に影響を与えない、または結果の行を返すクエリを意味すると見なします。

正常に実行されたクエリは常に有効なクエリ結果リソースになります。これは、影響を受けた行があるかどうかに関係なく常に真です。クエリが1つ以上の行に正常に適用されたかどうかを確認するには、pg_affected_rows(UPDATE/INSERT/DELETE)またはpg_num_rows(SELECT)のいずれかを使用する必要があります。

+0

私のコードに 'pg_num_rows'の使用に関するバグが見つかりました。私の更新された質問を見てください。 –

+0

私は、 'SELECT * FROM questions'というクエリをPsqlで実行して正常に動作します。 - 問題は私の意見ではない。 –

関連する問題