php - Zend 框架 1 - 消息 : SQLSTATE[HY093]: Invalid parameter number: no parameters were bound

标签 php mysql zend-framework zend-db zend-db-table

发生错误 应用程序错误 异常信息: 消息:SQLSTATE[HY093]:参数号无效:没有绑定(bind)参数

我的 Controller :

public function insertarAction() {
        $data = $this->getRequest()->getParams();
        // extract($data);


        if (isset($data['cod_domicilio'])) {

        $municipio = new Application_Model_DbTable_Municipios();
        $datos_municipio = $municipio->todosMunicipios();
        $datos_municipio['cod_municipio']=$data['cod_municipio'];

        $localidad = new Application_Model_DbTable_Localidades();
        $datos_localidad = $localidad->buscarLocalidad();

        $datos_municipio['cod_departamento']=$datos_localidad['codigo_departamento'];

        $rowMunicipio = $municipio->createRow();
        print_r($rowMunicipio);
        $rowMunicipio->save();
        }
}

在捕获时打印 R:

    array (
  'controller' => 'beneficiarios',
  'action' => 'insertar',
  'module' => 'default',
  'codigo_beneficiario' => '',
  'codigo_ud' => '2007',
  'nombres' => 'lksakljsdlkjsd',
  'apellidos' => 'lkslkjslkjsd',
  'tipo_beneficiario' => 'estudiante',
  'tipo_documento' => 'CC',
  'numero_documento' => '10912919009',
  'genero' => 'M',
  'tipo_sangre' => 'o+',
  'fecha_nacimiento' => '2013-12-12',
  'huella_d' => 'Ajustes Base de Datos',
  'huella_i' => 'Ajustes Base de Datos',
  'telefono_fijo' => '9191919',
  'telefono_celular' => '9191919191',
  'email_personal' => 'info@hola.com',
  'email_institucional' => 'info@hola.com',
  'tipo_regimen_salud' => 'sub',
  'cod_entidad_salud' => '1',
  'nombre_contacto' => 'alkslkalkakl',
  'telefono_contacto' => '18918198',
  'cod_domicilio' => '1',
  'cod_pais' => '56',
)  

表格:

CREATE TABLE IF NOT EXISTS `beneficiarios` (
  `codigo_beneficiario` int(11) NOT NULL AUTO_INCREMENT,
  `codigo_ud` bigint(20) NOT NULL,
  `nombres` varchar(30) NOT NULL,
  `apellidos` varchar(30) NOT NULL,
  `genero` enum('M','F') NOT NULL,
  `tipo_documento` enum('CC','TI','CE','P') NOT NULL,
  `numero_documento` varchar(30) NOT NULL,
  `huella_i` blob NOT NULL,
  `huella_d` blob NOT NULL,
  `telefono_fijo` varchar(8) DEFAULT NULL,
  `telefono_celular` varchar(10) DEFAULT NULL,
  `email_personal` varchar(50) NOT NULL,
  `email_institucional` varchar(50) DEFAULT NULL,
  `tipo_sangre` enum('o+','o-','a+','a-','ab+','ab-','p','b+','b-') NOT NULL,
  `fecha_nacimiento` date NOT NULL,
  `tipo_regimen_salud` enum('sub','cont') NOT NULL,
  `nombre_contacto` varchar(60) NOT NULL,
  `telefono_contacto` varchar(10) NOT NULL,
  `cod_entidad_salud` int(11) NOT NULL,
  `cod_domicilio` int(11) NOT NULL,
  `cod_pais` int(11) NOT NULL,
  `tipo_beneficiario` enum('estudiante','docente','administrativo') NOT NULL,
  PRIMARY KEY (`codigo_beneficiario`),
  KEY `fk_Beneficiario_Entidades_Salud1_idx` (`cod_entidad_salud`),
  KEY `fk_Beneficiario_Domicilios1_idx` (`cod_domicilio`),
  KEY `fk_Beneficiario_Paises1_idx` (`cod_pais`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

我正确插入数据,但显示此错误,输入的数据数量与表中相同(22 条数据)

最佳答案

来自 ZF Manual 中的此示例(示例 7) ,看来你必须传递数据数组,$datos_municipiocreateRow()功能 。

$rowMunicipio = $municipio->createRow($datos_municipio);

或者

你必须将其设置为类属性,例如
$datos_municipio->cod_departamento=$datos_localidad['codigo_departamento'];

关于php - Zend 框架 1 - 消息 : SQLSTATE[HY093]: Invalid parameter number: no parameters were bound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20705004/

相关文章:

php - Phonegap 文件传输和 Access-Control-Allow-Origin

php - MySQL 中批量更改列类型

php - 如何使用 PHP 的 OpenSSL 扩展验证 CA?

java - BigDecimal 的 JPA @Size 注释

php - 如何在 Zend Framework 中切换布局文件?

javascript - 如何在react.js文件中编写php脚本?

javascript - 将变量传递给 Ajax 请求客户资料详细信息

mysql - 如何从 WooCommerce 中的 Webhook 获取客户的变量

php - 如何为 zend 服务器(PHP)安装 MongoDb 驱动程序

ajax - Zend 框架 : How to stop dispatch/controller execution?