Buenas tardes,
Tengo un formulario debajo de cada articulo del blog para que las personas puedan subir sus comentarios pero no logro que el formulario subo los datos a la base de datos MySQL.
Este el el formulario:
<form class="form_comentarios" method="post" action="<?php echo RUTA . '/admin/comentarios.php'?>">
<input type="text" name="comentario_nombre" placeholder="Tu nombre">
<textarea name="comentario_texto" placeholder="Tu comentario"></textarea>
<input type="email" name="comentario_correo" placeholder="Tu dirección de correo">
<input type="submit" value="Enviar">
<p class="mail.msj">* La dirección de correo que ingreses no será publicada.</p>
</form>
Este es el archivo que recibe los datos "comentarios.php":
<?php
require 'config.php';
require '../functions.php';
$conexion = conexion($db_config);
if (!$conexion) {
header('Location: ../error.php');
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$comentario_nombre = limpiarDatos($_POST['comentario_nombre']);
$comentario_texto = limpiarDatos($_POST['comentario_texto']);
$comentario_correo = limpiarDatos($_POST['comentario_correo']);
$id_articulo = 1;
$statement = $conexion->prepare(
"INSERT INTO comentarios (id, articulo, nombre, correo, comentario)
VALUES (null, $id_articulo, :comentario_nombre, :comentario_texto, :comentario_correo)"
);
$statement->execute(array(
'$id_articulo' => $id_articulo,
':comentario_nombre' => $comentario_nombre,
':comentario_texto' => $comentario_texto,
':comentario_correo' => $comentario_correo //Esta es la línea 26 del error
));
//header('Location: ' . RUTA . '/admin'); Cometado para ver el error
}
?>
Este es el error que me arroja:
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in /opt/lampp/htdocs/rbvblog/admin/comentarios.php on line 26
No sé cuál es el problema.
Gracias a todos desde ya.