Сабля Quiero qué está fallando en mi código, necesito вставка Лос datos, una основывает de datos, подставляет pdo параграф evitar inyecciones SQL. Польза Ayuda por, число les dejo el error que me:
(!) КРИК: Ошибочное подавление проигнорировало для(!) фатальной ошибки: Звоните в функцию членства bindParam () на необъекте в C:\wamp\www\Santiago Casas\ext\inmobiliaria\panel\validate\propiedad.php на строке 616
//El archivo de conexion
<?php
$servername = "127.0.0.1";
$username = "root";
$password = "";
$dbname = "santiago_casas";
// Create connection
$mysqli = new mysqli($servername, $username, $password, $dbname);
?>
<?php
require_once '../inc/session.php';
?>
<?php
require_once '../inc/conexion.php';
//-------------------------------------//
$titulo = $_POST['titulo'];
$descripcion = $_POST['descripcion'];
$operacion = $_POST['operacion'];
$tipo = $_POST['tipo'];
$habitaciones = $_POST['habitaciones'];
$banos = $_POST['banos'];
$metros = $_POST['metros'];
$ubicacion = $_POST['ubicacion'];
$direccion = $_POST['direccion'];
$telefono = $_POST['telefono'];
$precio = $_POST['precio'];
$usuario = $_POST['usuario'];
$inmobiliaria = $_POST['inmobiliaria'];
$moneda = $_POST['moneda'];
// Protejemos los datos contra inyecciones SQL
$titulo = $mysqli->real_escape_string($titulo);
$descripcion = $mysqli->real_escape_string($descripcion);
$operacion = $mysqli->real_escape_string($operacion);
$tipo = $mysqli->real_escape_string($tipo);
$habitaciones = $mysqli->real_escape_string($habitaciones);
$banos = $mysqli->real_escape_string($banos);
$metros = $mysqli->real_escape_string($metros);
$ubicacion = $mysqli->real_escape_string($ubicacion);
$direccion = $mysqli->real_escape_string($direccion);
$telefono = $mysqli->real_escape_string($telefono);
$precio = $mysqli->real_escape_string($precio);
$usuario = $mysqli->real_escape_string($usuario);
$inmobiliaria = $mysqli->real_escape_string($inmobiliaria);
$moneda = $mysqli->real_escape_string($moneda);
$sentencia = $mysqli->prepare("INSERT INTO propiedades (titulo, descripcion, operacion, tipo, habitaciones, banos, m2, ubicacion, direccion, telefono, precio, usuario, inmobiliaria, moneda, imagen1, imagen2, imagen3, imagen4, imagen5, imagen6, imagen7, imagen8, imagen9, imagen10, imagen11, imagen12)
VALUES (:titulo, :descripcion, :operacion, :tipo, :habitaciones, :banos, :metros, :ubicacion, :direccion, :telefono, :precio, :usuario, :inmobiliaria, :moneda)");
$sentencia->bindParam(':titulo', $titulo);
$sentencia->bindParam(':descripcion', $descripcion);
$sentencia->bindParam(':operacion', $operacion);
$sentencia->bindParam(':tipo', $tipo);
$sentencia->bindParam(':habitaciones', $habitaciones);
$sentencia->bindParam(':banos', $banos);
$sentencia->bindParam(':metros', $metros);
$sentencia->bindParam(':ubicacion', $ubicacion);
$sentencia->bindParam(':direccion', $direccion);
$sentencia->bindParam(':telefono', $telefono);
$sentencia->bindParam(':precio', $precio);
$sentencia->bindParam(':usuario', $usuario);
$sentencia->bindParam(':inmobiliaria', $inmobiliaria);
$sentencia->bindParam(':moneda', $moneda);
// Termino la proteccion de datos contra Inyecciones SQL
//Empezamos la consulta INSERT
/*$sql = $mysqli->query("
INSERT INTO propiedades (titulo, descripcion, operacion, tipo, habitaciones, banos, m2, ubicacion, direccion, telefono, precio, usuario, inmobiliaria, moneda, imagen1, imagen2, imagen3, imagen4, imagen5, imagen6, imagen7, imagen8, imagen9, imagen10, imagen11, imagen12)
VALUES ('$titulo', '$descripcion', '$operacion', '$tipo', '$habitaciones', '$banos', '$metros', '$ubicacion', '$direccion', '$telefono', '$precio', '$usuario', '$inmobiliaria', '$moneda', '$imagen1', '$imagen2', '$imagen3', '$imagen4', '$imagen5', '$imagen6', '$imagen7', '$imagen8', '$imagen9', '$imagen10', '$imagen11', '$imagen12')");*/
if ($sentencia) {
header("Location: ../propiedades.php");
}else{
header("Location: ../propiedades.php");
}
?>
Реализуй следующие изменения:
?
тогда твоими INSERT
дебет повернул таким образом, довел до сведения, что я только разместил какие-то подобно примеру, ты должен размещать то же число закладок положения, что и колонны будешь присоединять им реестр : Консультирует Последующие
$sentencia = $mysqli->prepare("INSERT INTO propiedades (titulo, descripcion,
operacion, tipo,
habitaciones, banos, m2,
ubicacion, direccion,
telefono, precio, usuario,
inmobiliaria, moneda,
imagen1, imagen2, imagen3,
imagen4, imagen5, imagen6,
imagen7, imagen8, imagen9,
imagen10, imagen11,
imagen12)
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
метод, который использует mysqli , называются bind_param
и он должен содержать следующее:
Более или менее это мочь оставаться так:
$sentencia->bind_param('ssssss', $variable1, $variable2, $variable3,.....,$variableN);
, Если ты хранишь цепи текста, тогда ты размещаешь s
, если ты будешь хранить целые числа, используй i
, и если ты будешь хранить с десятичными тогда d
Ссылок
?
. 2º mé совсемbindParam
не существует вmysqli
, mé всегоbind_param
. Другая вещь, которую OP должен осветлять, - qué тип - колонны, имя которых начинает из-за изображение , итак, если они типа BLOB, это будет осложнять вещь. Уже как комментарий, очень спорно иметь в таблице серию колонн этого стиля (imagen1, imagen2, imagenN...), quizá OP deberí чтобы объяснять немного из-за qué он это делает, чтобы мочь предлагать ему прогресс в Вашей модели данных. – A. Cedano 19.12.2019, 21:09bind_param
и закончил тем, что писал, что то, что предполагается, он не должен использовать :( – Aprendiz 19.12.2019, 21:10