El siguiente código carga imágenes en mi base de datos SQL llamada upload_image
.
if(isset($_POST['submit'])){
$target_path = "images/";
$target_path = $target_path . basename($_FILES['file']['name']);
if(move_uploaded_file($_FILES['file']['tmp_name'], $target_path)){
$conn =new mysqli("localhost", "root", "", "upload_image");
$sql = "Insert into upload_image('path') values('$target_path')";
if($conn->query($sql)==TRUE){
echo"<br><br>";
}else{
echo "Error on upload".$sql.$conn->error;
}
}
}
El error que se muestra es
Error en uploadInsert en upload_image ('ruta') valores ('images / ao.png')
Tiene un error en su sintaxis SQL; consulte el manual que corresponde a la versión de su servidor MariaDB para conocer la sintaxis correcta para usar cerca de los valores de '' ruta ') (' images / ao.png ')' en la línea 1
Aquí está la parte HTML:
<form method="post" enctype="multipart/form-data">
<input type="hidden" value=="1000000" name="MAX_FILE_SIZE"/>
<input type="file" name="file"/>
<input type="submit" name="submit" value="Upload"/>
El HTML y PHP están todos en un código.
La línea:
$sql = "Insert into upload_image('path') values('$target_path')";
Debiera ser:
$sql = "Insert into upload_image(path) values('$target_path')";
En otras palabras, no debe haber comillas alrededor del nombre de la columna en su consulta.
Para facilitar la lectura: puede utilizar mayúsculas y minúsculas con palabras clave.
$sql = "INSERT INTO upload_image (path) VALUES ('$target_path')";
Por seguridad: puede usar una declaración preparada
El código es vulnerable a la inyección de SQL, por lo que un mejor enfoque sería utilizar una declaración preparada, es decir
$sql = "INSERT INTO upload_image (path) VALUES (?)";
$stmt = $conn->prepare($sql);
$stmt->bind("s", $target_path);
$stmt->execute();
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras