通过PHP检查pg_query_params的返回值

时间:2009-08-29 08:50:45

标签: php postgresql

如何在PHP pg query params中检查资源是否为假?

我运行以下代码失败

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

它给了我以下警告

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这是正确的,所以第二个警告似乎只是一个sympton。 原因是整数的无效类型。

我的查询是

$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 )
);

2 个答案:

答案 0 :(得分:3)

试试这个:

$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.";
}

在使用$ result之前,您需要检查它。

答案 1 :(得分:1)

当您说“NULL查询”时,我假设您的意思是不影响或返回任何结果行的查询。

任何成功的查询都将始终生成有效的查询结果资源,无论是否已影响/返回任何行,该资源始终为true。要查看查询是否已成功应用于一行或多行,您必须使用pg_affected_rows(UPDATE / INSERT / DELETE)或pg_num_rows(SELECT)。