2017-02-04 14 views
-4

に一致する私は、このコードSQLSTATE [HY093]無効なパラメータ番号、すべてのパラメータが

switch ($var1) { 
case 'corredor':{ 
    $query = ' UPDATE corredor 
       SET 
         cedula = :cedula, 
         nombres = :nombres, 
         apellidos = :apellidos, 
         fechanacimiento = :fechanacimiento, 
         telefono = :telefono, 
         correo = :correo, 
         direccion = :direccion, 
         fecharegistro = :fecharegistro, 
         estatus = :estatus, 
         aseguradora_rif =: aseguradora_rif 
       WHERE cedula = :cedula_old 
      '; 
    $query_params = array(
     ':cedula' => $_POST['cedula'], 
     ':nombres' => $_POST['nombres'], 
     ':apellidos' => $_POST['apellidos'], 
     ':fechanacimiento' => $_POST['fechanacimiento'], 
     ':telefono' => $_POST['telefono'], 
     ':correo' => $_POST['correo'], 
     ':direccion' => $_POST['direccion'], 
     ':fecharegistro' => $_POST['fecharegistro'], 
     ':estatus' => $_POST['estatus'], 
     ':aseguradora_rif' => $_POST['aseguradora_rif'] 
     ':cedula_old' => $var2 
     ); 
    try { 
     $stmt = $db->prepare($query); 

     $result = $stmt->execute($query_params); 
    } catch (PDOException $ex) { 
     $ex->getMessage(); 
    } 
    #header('Location: index.php?do=listacorredor'); 
    break; 
} //fin case 

私は

SQLSTATE [HY093]を取得していますがあります一致するトークンの数

私はすべてのパラメータが一致するように見えますが、私はすでにクエリの最後に余分な部分を探していましたが、すべてのバインドがdatabと一致しています私はここで失われているので、他の答えは欠けているものなどだったが、実際にはここで問題を見ることはできない。バインドのparams :)​​前

http://php.net/manual/es/pdostatement.bindparam.php

http://php.net/manual/es/pdostatement.bindvalue.php

を忘れてしまった

+0

はあなたが後に余分なコンマを持って ' ':cedula_old' => $ var2で、'、および上記の行になし。 – Qirel

+0

ああ、私はこれを投稿している間にテストしていましたが、削除されても同じエラーが発生しました。 –

+0

'aseguradora_rif =:aseguradora_rif'ここに余分なスペースがあります –

答えて

-1

、あなたは配列にデータを対応する値を "割り当て" が必要です。

例:

$stmt = $db->prepare($query); 

$stmt->bindParam(':cedula', $_POST['cedula']); 

$result = $stmt->execute(); 
+0

あなたは、あなたが経験した分野でのみ答えてみましょう。 –

関連する問題