Проверка возвращаемого значения pg_query_params с помощью PHP - PullRequest
0 голосов
/ 29 августа 2009

Как проверить, является ли ресурс ложным в PHP pg параметрах запроса ?

я запускаю следующий код безуспешно

 $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, что правильно, поэтому второе предупреждение кажется только симптомом. Причиной этого является недопустимый тип целого числа.

Мой запрос:

$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 ]

3 голосов
/ 29 августа 2009

Попробуйте это:

$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 голос
/ 29 августа 2009

Когда вы говорите «NULL запрос», я предполагаю, что вы имеете в виду запрос, который не влияет на строки результата или не возвращает их.

Любой успешный запрос всегда будет приводить к действительному ресурсу результата запроса, который всегда будет истинным, независимо от того, были ли затронуты / возвращены какие-либо строки. Чтобы увидеть, был ли запрос успешно применен к одной или нескольким строкам, вы должны использовать pg_affered_rows (UPDATE / INSERT / DELETE) или pg_num_rows (SELECT).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...