首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图插入PDO: PDOStatement::execute():SQLSTATE[HY093]:无效参数号:参数未定义时出错

试图插入PDO: PDOStatement::execute():SQLSTATE[HY093]:无效参数号:参数未定义时出错
EN

Stack Overflow用户
提问于 2017-11-30 10:19:00
回答 1查看 69关注 0票数 1

我得到了这个错误:警告: PDOStatement::execute():SQLSTATEHY093:无效参数编号:参数没有在

数组( => HY093 1 => 2 => )

代码语言:javascript
复制
$arr = array();
    $values = "";
    $sql = "INSERT INTO avisos(nombre ";
    $values.=":nombre";
    $arr[] = "nombre => $nombre";

    if($plataforma!=""){
        $sql .= ", idPlataforma";
        $values.=", :idPlataforma";
        $arr[] = "idPlataforma => $plataforma";
    }
    if(idCompania!=""){
        $sql .= ", idCompania";
        $values.=", :idCompania";
        $arr[] = "idCompania => $compania";
    }
    if($fondo!=""){
        $sql .= ", idFondo";
        $values.=", :idFondo";
        $arr[] = "idFondo => $fondo";
    }
    if($remitente != ''){
        $sql .= ", idRemitente";
        $values.=", :idRemitente";
        $arr[] = "idRemitente => $remitente";
    }
    $sql.= ") VALUES ($values);";

    $stmt = $con->prepare($sql); 

    if ($stmt->execute($arr)){
        echo "OK";
    }

我看不出我在哪里不及格。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-30 10:20:51

发送给execute()的数组需要有键值对,其中键是占位符,值是要插入的值。

因此,与其:

代码语言:javascript
复制
$arr[] = "nombre => $nombre";

你需要:

代码语言:javascript
复制
$arr[':nombre'] = $nombre;

或者:

代码语言:javascript
复制
$arr['nombre'] = $nombre;

等。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47570974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档