发生错误 应用程序错误 例外信息: 消息:SQLSTATE [HY093]:参数号无效:没有绑定参数
我的控制器:
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个数据)
答案 0 :(得分:0)
从ZF Manual中的此示例(示例7),您似乎必须将数据数组$datos_municipio
传递给createRow()
函数。
$rowMunicipio = $municipio->createRow($datos_municipio);
OR
您必须将其设置为类属的属性
$datos_municipio->cod_departamento=$datos_localidad['codigo_departamento'];