This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center
6年前关闭。
也许你能帮我完成这部分代码。我试图让它工作,但当我试图UPDATE时,总是显示这个错误:
警告:PDOStatement::execute()[PDOStatement.execute]:
SQLSTATE[HY093]:无效参数编号:绑定变量数
与中的令牌数不匹配
/主页/-/public_html/soft/Admin/configuracion.php,第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>

最佳答案

您错过了a:将查询更改为:

$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";

关于php - PDOStatement中的警告:无效的参数号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16681005/

10-10 13:28