我试图在mysql上保存一些数据,但它并没有保存。
注意:mysql数据库在直接控制台代码下工作正常。
继承我的HTML代码:
<form method="post" action="prueba1.php" >
Nombre: <input type="text" name="nombre" id="nombre" /></br>
Email: <input type="text" name="email" id="email" /></br>
Comentarios: <input type="text" name="comentarios" id="comentarios" / ></br>
<input type="submit" name="submit" value="Registrar" />
</form>
继承我的PHP代码:
if(!empty($_POST))
{
try
{
$nombre = $_POST ['nombre'];
$email = $_POST ['correo'];
$comentarios = $_POST ['comentarios'];
$sql_insert = "
INSERT INTO usuario (nombre, correo, comentarios)
VALUES (?,?,?) ";
$stmt = $con->prepare($sql_insert);
$stmt->bindValue(1, $nombre);
$stmt->bindValue(2, $email);
$stmt->bindValue(3, $comentarios);
$stmt->execute();
echo "<h3>Tu comentario se a registrado con éxito</h3>";
}
catch (Exception $e)
{
echo "<h3>No se pudo registrar tu comentario</h3>";
die(var_dump($e));
}
注意:当我按下按钮时,值为&#34;注册器&#34;告诉我它拯救已成功。但是数据库中不存在。
任何帮助将不胜感激。
最好的问候。
答案 0 :(得分:1)
澄清,这是否是正确的使用方式
$stmt->bindValue(1, $nombre);
$stmt->bindValue(2, $email);
$stmt->bindValue(3, $comentarios);
因为我只使用了bind_param
$stmt->bind_param('is',$value1,$value2); // where i is integer and s is string
尝试使用
$stmt->bind_param('sss',$nombre,$email,$comentarios); // hope all three are strings
检查数据库中的条目,对不起,如果我错了......
答案 1 :(得分:0)
我认为您的插入查询错误
INSERT INTO usuario (nombre, correo, comentarios) VALUES (?,?,?) ";
你的价值观包含&#39;?&#39;,我认为应该是这样的
INSERT INTO usuario (nombre, correo, comentarios) VALUES ('$nombre','$correo','$comentarios') ";