我有 index.php 文件,我有这个代码,当你在html代码中按下按钮时,它会发送你在MySQL数据库中插入数据。
$app->post('/nuevo', function() use($app, $db){
$request = $app->request;
$nombre = $request->post('Nombre');
$apellidos = $request->post('Apellidos');
$nifcode = $request->post('NIF');
$direccion = $request->post('Direccion');
$email = $request->post('Email');
$telefono = $request->post('Telefono');
$estado = $request->post('Estado');
$dbquery = $db->prepare("INSERT INTO ClientesSinHechos(Nombre, Apellidos, NIF, Direccion, Email, Telefono, Estado)
VALUES(:Nombre, :Apellidos, :NIF, :Direccion, :Email, :Telefono, :Estado)");
$res = $dbquery -> execute(array(':nombre' => $nombre, ':Apellidos' => $apellidos
, ':NIF' => $nifcode, ':Direccion' => $direccion, ':Email' => $email
, ':Telefono' => $telefono, ':Estado' => $estado));
$app->redirect('ClientesSinHechos');
});
这是在index.php中,在我的注册html页面中,我有这个部分:
<div class="container">
<form action="" method="POST" role="form">
<br />
<h3><b>Datos de cliente : </b></h3>
<p><br />
<table width="42%">
<tr>
<div>
<label for="Nombre">Nombre : </label>
<input width="50" type="text" class="form-control" id="Nombre" name="Nombre" placeholder="Introduce nombre">
</div>
</tr>
<p><br />
<tr>
<div>
<label for="Apellidos">Apellidos : </label>
<input width="50" type="text" class="form-control" id="Apellidos" name="Apellidos" placeholder="Introduce apellidos">
</div>
</tr>
<p><br />
<tr>
<div>
<label for="NIF">NIF : </label>
<input width="50" type="text" class="form-control" id="NIF" name="NIF" placeholder="Introduce NIF">
</div>
</tr>
<!--<p><br />
<tr>
<div>
<label for="Fecha_Nacimiento">Fecha de nacimiento : </label>
<form name="fcalen">
<INPUT name="fecha1" size="10">
<input type=button value="Seleccionar fecha" onclick="muestraCalendario('','fcalen','fecha1')">
</form>
</div>
</tr>-->
<p><br />
<tr>
<div>
<label for="Direccion">Dirección : </label>
<input width="50" type="text" class="form-control" id="direccion" name="direccion" placeholder="Introduce dirección">
</div>
</tr>
<p><br />
<tr>
<div>
<label for="Email">Dirección de correo electrónico : </label>
<input width="50" type="text" class="form-control" id="email" name="email" placeholder="Introduce correo electrónico">
</div>
</tr>
<p><br />
<tr>
<div>
<label for="Telefono">Teléfono : </label>
<input width="50" type="text" class="form-control" id="telefono" name="telefono" placeholder="Introduce teléfono">
</div>
</tr>
<p><br />
<tr>
<div>
<label for="Estado">Estado : </label>
<input width="50" type="text" class="form-control" id="estado" name="estado" placeholder="Introduce un estado">
</div>
</tr>
<p><br />
<button type="submit" class="btn btn-primary">Registrar</button>
</table>
</form>
</div>
控制台抛出了这个:
Details
Type: ErrorException
Code: 2
Message: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
File: /var/www/slimtest/index.php
Line: 44
这一行就是这一行:, ':Telefono' => $telefono, ':Estado' => $estado));
帮助谢谢。
答案 0 :(得分:0)
变化:
$telefono = $request->post('Telefono');
$estado = $request->post('Estado');
要:
$telefono = $request->post('telefono');
$estado = $request->post('estado');
(小写)或将id
和name
更改为HTML表单中的大写字母