2013-12-15 35 views
-4

以下錯誤出現在我的代碼中給出警告:pg_num_rows()期望的是1個參數,0在PHP

警告:pg_num_rows()期望的是1個參數,0在/var/www/funcoes.php給出線路52上

這是函數的代碼:)pg_num_rows(預計/var/www/funcoes.php給定線路52上正好1個參數,0:

function cadastrarFornecedor($nome){ 

    $qry = "INSERT INTO public.fornecedor (nome) VALUES ('".$nome."')"; 

    $result = pg_query($qry); 

    if(pg_num_rows() > 0){ 
     return 1; 
    } 
    else{ 
     return 0; 
    } 
} 
+4

哪一部分正是在錯誤消息不清楚? – JJJ

+0

是的 - 確實出現錯誤。但是,你到底有什麼問題? – Lix

回答

-2

警告

誤差不言自明

function cadastrarFornecedor($nome){ 
    $qry = "INSERT INTO public.fornecedor (nome) VALUES ('" . $nome . "')"; 
    $result = pg_query($qry); 

    if (pg_num_rows($result) > 0) { 
     return 1; 
    } 
    else { 
     return 0; 
    } 
} 
3

pg_num_rows取結果集的變量作爲參數。錯誤是告訴你預期有一個參數,但沒有提供任何參數。

見恩膏簽名:int pg_num_rows (resource $result)

其中,$結果:

PostgreSQL的查詢結果資源,通過pg_query(), pg_query_params()或pg_execute(返回)(其中包括)

所以你的代碼應該通過查詢結果集到pg_num_rows,如下例:

function cadastrarFornecedor($nome){ 
    $qry = "INSERT INTO public.fornecedor (nome) VALUES ('".$nome."')"; 
    $result = pg_query($qry); 

    if(pg_num_rows($result) > 0){ 
     return 1; 
    } else{ 
     return 0; 
    } 
} 

來源:http://www.php.net/manual/en/function.pg-num-rows.php

(注意:pg_num_rows將返回零,如果你插入到一個視圖中,帶有DO INSTEAD觸發,對分區表觸發/規則等)

+2

怎麼解釋?我們如何知道你用代碼改變了什麼。你在這裏做的是鼓勵某人複製/粘貼你的代碼到他們的代碼庫 - 這不是正確的想法... – Lix

+0

方法簽名是我第一件... –

+0

是的 - 但**實際**問題在於這是一個參數丟失。你沒有在你的回答中提到這一點。如果OP在編寫代碼時設法錯過了這一點,爲什麼你會認爲他們會注意到與你的建議有所不同? – Lix

相關問題