2013-12-15 32 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

相关问题