Te voy a mostrar como guardar datos con POO (Programación orientado a Objetos ) en PHP.
Crear la tabla mensaje de base de datos.
--
-- Estructura de tabla para la tabla `mensaje`
--
CREATE TABLE `mensaje` (
`id` int(11) NOT NULL,
`titulo` varchar(100) COLLATE utf16_spanish2_ci NOT NULL,
`mensaje` varchar(500) COLLATE utf16_spanish2_ci NOT NULL,
`usuario` int(11) NOT NULL,
`desde` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`leido` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf16 COLLATE=utf16_spanish2_ci;
Un código para coger los datos y pasar los parámetros para guardar los datos a la base de datos. Crear una clase de php «message.php»
<?php // es para importar el modelo
include ('ModeloMensaje.php');
// obtener los datos del formulario
$parametro['asunto'] = $_POST['asunto'];
$parametro['mensaje'] = $_POST['mensaje'];
// crear clase
$message = new ModeloMensaje;
// llamar desde la funcion de insertar
$resultado = $message->insert_mensaje($parametro);
// si es verdado entonces se muestra el mensaje
if ($resultado['success']==TRUE)
{
$resmes = $resultado['message'];
echo '<div class="alert alert-success" role="alert"> '.$resmes.' </div>';
}
else{
$resmes = $resultado['message'];
echo '<div class="alert alert-danger" role="alert"> '.$resmes.' </div>';
}
?>
Agregar formulario
<form action="message.php" method="post">
<div class="form-group">
<label for="exampleFormControlInput1">Asunto</label>
<input type="text" class="form-control" name="asunto">
</div>
<div class="form-group">
<label for="exampleFormControlTextarea1">Mensaje</label>
<textarea class="form-control" name="mensaje" rows="3"></textarea>
</div>
<button type="submit" class="btn btn-primary mb-2">Enviar</button>
</form>
Parte de modelo, crear clase llamado «ModeloMensaje.php» y ahí donde esta la función de conexión y insertar a la base de datos.
Parte de conexión a la base de datos
public function conectar_bd()
{
$servername = "localhost";
$username = "newuser";
$password = "password";
$dbname = "tutofox";
/* crear la conexión */
$conexion = new mysqli($servername, $username, $password, $dbname);
/* comprobar la conexión */
if ($conn->connect_error) {
die("Falló la conexión:: " . $conn->connect_error);
}
else
{
return $conexion;
}
}
Parte de insertar (guardar) los datos a la base de datos.
public function insert_mensaje($parametro){
//tiempo
$hoy = date("Y-m-d H:i:s");
$asunto = $parametro['asunto'];
$message = $parametro['mensaje'];
$sql = "INSERT INTO `mensaje`(`titulo`, `mensaje`, `usuario`, `desde`, `leido`) VALUES ('$asunto', '$message', 1 ,'$hoy', 0)";
$conn = $this->conectar_bd();
if ($conn->query($sql) === TRUE)
{
$res['success'] = TRUE;
$res['message'] = "Envio exitosamente";
}
else
{
$res['success'] = FALSE;
$res['message'] = "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
return $res;
}
Completo ModeloMensaje.php
<?php
class ModeloMensaje {
public function conectar_bd()
{
$servername = "localhost";
$username = "newuser";
$password = "password";
$dbname = "tutofox";
/* crear la conexión */
$conexion = new mysqli($servername, $username, $password, $dbname);
/* comprobar la conexión */
if ($conn->connect_error) {
die("Falló la conexión:: " . $conn->connect_error);
}
else
{
return $conexion;
}
}
public function insert_mensaje($parametro){
//tiempo
$hoy = date("Y-m-d H:i:s");
$asunto = $parametro['asunto'];
$message = $parametro['mensaje'];
$sql = "INSERT INTO `mensaje`(`titulo`, `mensaje`, `usuario`, `desde`, `leido`) VALUES ('$asunto', '$message', 1 ,'$hoy', 0)";
$conn = $this->conectar_bd();
if ($conn->query($sql) === TRUE)
{
$res['success'] = TRUE;
$res['message'] = "Envio exitosamente";
}
else
{
$res['success'] = FALSE;
$res['message'] = "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
return $res;
}
}
?>
message.php
<html>
<head>
<title></title>
<meta content="">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<style></style>
</head>
<body>
<div class="container">
<div style="height:50px"></div>
<h1>< tutofox /> <small>Oh my code!</small></h1>
<p class="lead">
<h3>Enviar un nuevo mensaje </h3>
<?php
if ($_POST['asunto']&&$_POST['mensaje'])
{
include ('ModeloMensaje.php');
$parametro['asunto'] = $_POST['asunto'];
$parametro['mensaje'] = $_POST['mensaje'];
$message = new ModeloMensaje;
$resultado = $message->insert_mensaje($parametro);
echo "string";
//$resultado = ModeloMensaje::insert_mensaje($parametro);
if ($resultado['success']==TRUE)
{
$resmes = $resultado['message'];
echo '<div class="alert alert-success" role="alert"> '.$resmes.' </div>';
}
else{
$resmes = $resultado['message'];
echo '<div class="alert alert-danger" role="alert"> '.$resmes.' </div>';
}
}
?>
<hr>
<form action="message.php" method="post">
<div class="form-group">
<label for="exampleFormControlInput1">Asunto</label>
<input type="text" class="form-control" name="asunto">
</div>
<div class="form-group">
<label for="exampleFormControlTextarea1">Mensaje</label>
<textarea class="form-control" name="mensaje" rows="3"></textarea>
</div>
<button type="submit" class="btn btn-primary mb-2">Enviar</button>
</form>
</div> <!-- /container -->
</body>
</html>