为什么它显示错误:数组到字符串的转换?
如果我只将一个值传递给函数anadirImagenAccesorio
,并且该值是一个文本。
PHP代码:
static public function anadirImagenAccesorio ($descripcion) {
$ejecucion = self::Conexion();
$sql = "INSERT INTO accesorios (descripcion) VALUES (UPPER('" . $descripcion . "'))";
$ok = $ejecucion->exec($sql);
if ($ok == 1) {
return true;
} else {
return false;
}
}
HTML + PHP 代码:
<!-- Añadir un accesorio -->
<form action="<?php echo $_SERVER['PHP_SELF'];?>" enctype="multipart/form-data" name="anadir_accesorio" id="anadir_accesorio" method="POST">
<!-- Subir archivo -->
<label for="accesorio">Accesorio:</label>
<input type="file" name="accesorio" id="accesorio" />
<br/><br/>
<input type="submit" value="Subir" id="guardar_accesorio" name="guardar_accesorio" />
</form>
//Si pulsamos el botón "Guardar accesorio"...
if (isset($_POST["guardar_accesorio"])) {
//Subir el nombre de una imagen. $_FILES: Variables de subida de ficheros HTTP.
if (!isset($_FILES["accesorio"]) || $_FILES["accesorio"]["error"] > 0) {
echo "Ha ocurrido un error. Inténtelo de nuevo...";
} else {
//Comprobamos si la extensión el fichero es de tipo imagen y menor de 16MB.
$permitidos = array("image/jpg", "image/jpeg", "image/gif", "image/png");
$limite_kb = 16384;
//Si la extensión del fichero a subir, coincide con la de permitidos...
if (in_array($_FILES['accesorio']['type'], $permitidos) && $_FILES['accesorio']['size'] <= $limite_kb * 1024) {
//Guardamos la imagen como archivo local en "$imagen_temporal". [tmp_name] sería para archivo temporal (carpeta tmp de Xampp).
$imagen_temporal = $_FILES['accesorio']['name'];
//Tipo de extensión.
$tipo = $_FILES['accesorio']['type'];
//Escapamos los caracteres para que se puedan almacenar en la base de datos correctamente.
$imagen = $imagen_temporal;
//Explode(): divide un string en varios string.
$nombre_accesorio = explode(".", $imagen);
//Insertamos en la base de datos.
$sql = BD::anadirImagenAccesorio($nombre_accesorio);
} else {
echo "Formato de archivo no permitido o excede el tamaño límite de $limite_kb Kbytes.";
}
}
}
我必须补充一点,附件表有两个字段:idaccesorio
(auto_increment - int)和descripcion
(string)。
因为您正在连接一个数组,而这是无法完成的。
在这里你声明
$nombre_accesorio
为数组在这里,您将其作为参数传递
在这里,您尝试将其连接起来,这是无法做到的。