2013-05-21 35 views
1

也許你可以幫我完成這部分代碼。我試圖使它的工作,但是當我嘗試UPDATE總是告訴我這個錯誤:PDOStatement中的警告:無效的參數編號

Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in /home/-----/public_html/soft/Admin/configuracion.php on line 264

行264:

// Execute the query 
      $stmt->execute(); 

下面的:

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

這裏是我的代碼:

<?php 
include '../include/update_config.php'; 

$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass); 

$action = isset($_POST['action']) ? $_POST['action'] : ""; 
if($action == "update"){ 
     try{ 
      $query = "update CONFIGURACION set id = :id, nombre_clinica = :nombre_clinica, direccion = :direccion, telefono_clinica = :telefono_clinica, titulo_clinica = :titulo_clinica, logo = :logo, page_meta_tag = page_meta_tag where id = 1"; 

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

       $stmt->bindParam(':nombre_clinica', $_POST['nombre_clinica']); 
       $stmt->bindParam(':direccion', $_POST['direccion']); 
       $stmt->bindParam(':telefono_clinica', $_POST['telefono_clinica']); 
       $stmt->bindParam(':titulo_clinica', $_POST['titulo_clinica']); 
       $stmt->bindParam(':logo', $_POST['logo']); 
       $stmt->bindParam(':page_meta_tag', $_POST['page_meta_tag']); 
       $stmt->bindParam(':id', $_POST['id']); 

       // Execute the query 
       $stmt->execute(); 

       echo "Record was updated."; 

     }catch(PDOException $exception){ //to handle error 
       echo "Error: " . $exception->getMessage(); 
     } 
} 

try { 

     //prepare query 
     $query = "select nombre_clinica, direccion, telefono_clinica, titulo_clinica, logo, page_meta_tag from CONFIGURACION where id = 1"; 
     $stmt = $conn->prepare($query); 

     //this is the first question mark 
     $stmt->bindParam(1, $_REQUEST['id']); 

     //execute our query 
     $stmt->execute(); 

     //store retrieved row to a variable 
     $row = $stmt->fetch(PDO::FETCH_ASSOC); 

     $id = $row['id']; 
     $nombre_clinica = $row['nombre_clinica']; 
     $direccion = $row['direccion']; 
     $telefono_clinica = $row['telefono_clinica']; 
     $titulo_clinica = $row['titulo_clinica']; 
     $logo = $row['logo']; 
     $page_meta_tag = $row['page_meta_tag']; 

}catch(PDOException $exception){ //to handle error 
     echo "Error: " . $exception->getMessage(); 
} 


?> 
      <form class='form-horizontal' method='post' action='' enctype='multipart/form-data'> 
       <fieldset> 
       <legend><i class='icon32 icon-wrench'></i>Configuración General del Sistema</legend> 

       <div class='control-group'> 
        <label class='control-label' for='typeahead'>Nombre de la Clínica</label> 
        <div class='controls'> 
         <input type='text' class='span6 typeahead' name='nombre_clinica' 
          value='<?php echo $nombre_clinica; ?>' /> 
        </div> 
       </div> 
       <div class='control-group'> 
        <label class='control-label' for='typeahead'>Dirección</label> 
        <div class='controls'> 
         <input type='text' class='span6 typeahead' name='direccion' 
          value='<?php echo $direccion; ?>' /> 
        </div> 
       </div> 
       <div class='control-group'> 
        <label class='control-label' for='typeahead'>Número de Teléfono</label> 
        <div class='controls'> 
         <input type='text' class='span6 typeahead' name='telefono_clinica' 
          value='<?php echo $telefono_clinica; ?>' /> 
        </div> 
       </div> 
       <div class='control-group'> 
        <label class='control-label' for='typeahead'>Viñeta de página web</label> 
        <div class='controls'> 
         <input type='text' class='span6 typeahead' name='titulo_clinica' 
          value='<?php echo $titulo_clinica; ?>' /> 
        </div> 
       </div> 
       <div class='control-group'> 
        <label class='control-label' for='typeahead'>Logo Clínica</label> 
        <div class='controls'> 
         <input class='input-file uniform_on' id='fileInput' name='logo' type='file' /> 
         <br /> 
         <img style='max-height:80px;' src='../images/<?php echo $logo; ?>' /> 
        </div> 
       </div> 
       <div class='control-group'> 
        <label class='control-label' for='typeahead'>Meta tag del Software clínico</label> 
        <div class='controls'> 
         <input type='text' class='span6 typeahead' name='page_meta_tag' 
          value='<?php echo $page_meta_tag; ?>' /> 
        </div> 
       </div> 
       <div class='control-group'> 
        <div class='controls'> 
       <input type='hidden' name='id' value='<?php echo $id ?>' /><input type='hidden' name='action' value='update' /> 
       <input type='submit' class='btn btn-primary' value='Actualizar configuracion' /> 
        </div> 
       </div> 
       </fieldset> 
      </form> 

回答

5

你錯過了:查詢更改爲:

$query = "update CONFIGURACION set 
    id = :id, 
    nombre_clinica = :nombre_clinica, 
    direccion = :direccion, 
    telefono_clinica = :telefono_clinica, 
    titulo_clinica = :titulo_clinica, 
    logo = :logo, 
    page_meta_tag = :page_meta_tag // <--- here it was missing 
    where id = 1"; 
+0

謝謝我錯過了.. –

+0

我還有一個問題...當我更新條目,徽標(JPEG,PNG等)。不要保存它,你可以看到如果錯過了它的東西? –

+0

您確定所有的值都可以通過POST正確傳輸嗎?什麼給你'var_dump($ _ POST);'? – hek2mgl

相關問題