上传多张图片并在数据库中保存名称 PHP MySQL

Upload multiple images and save names in database PHP MySQL

在查看了同一个问题的不同解决方案之后,我提出了一个新的场景,错误的脚本仅上传通过 HTML 表单发送的各种图像之一,并在 mysql 查询中抛出错误.

    $imgn = $_FILES['imgn']['name'];     # Definimnos los valores
    $galnom = $_POST['galnom'];  # para extracción

    for($i =0; $i < count($_FILES['imgn']['name']); $i++){  # creamos el loop inicial utilizado la variable $i
    # Procesar la imagen ---------------------------------------------------------------------




    #  Propiedad de Samuel Ramírez S...
    #  smctotal.com
    #  Este script no puede redistribuirse sin una constancia de autorización por parte de Samuel Ramírez S. RASS650104P35
    $imaggen = $_FILES['imgn']['name'][$i];       # Archivo original
    $tempral = $_FILES["imgn"]["tmp_name"][$i];   # Archivo en la carpeta temporal
    $formato = $_FILES["imgn"]["type"][$i];       # Analizamos el tipo de archivo image/jpeg
    $tamanio = $_FILES["imgn"]["size"][$i];       # Tamaño de la imagen


    $divisor = explode(".",$imaggen);           # Separamos el nombre de la extensión
    $xtnsion = end($divisor);                   # Extensión también se puede imprimir $divisor[1];
    $nombbre = $divisor[0];                     # Nombre del archivo
    round(($tamanio/1000),0).' Kilobytes';      # Formateo del peso del archivo
    $imgn = round(microtime(true)).'.'.$xtnsion; # Se establece el nuevo nombre del archivo
    move_uploaded_file($tempral, "../../img/sect/".$imgn); # Se guarda el archivo con su nuevo nombre.
    # Hasta aquí ya subimos el archivo
    # Enseguida lo abrimos para proceso ------------------------------------------------------
    $img = imagecreatefromjpeg("../../img/sect/".$imgn);   # Abrimos la imagen para proceso
    $anchoActual = imagesx($img);               # Obtenemos el ancho original
    $alttoActual = imagesy($img);               # Obtenemos la altura original

    # --- CD Imagen grande -------------------------------------------------------------------
    $nuevo_ancho = 600;
    $factor = $nuevo_ancho / $anchoActual; # Proporción alto anterior y el nuevo, aplicar el factor a la altura
    $nuevo_allto = $alttoActual * $factor;
    # --- FD Imagen grande

    # --- CD Thumbnail -----------------------------------------------------------------------
    $thumb_ancho = 100;
    $facthmb = $thumb_ancho / $anchoActual; # Proporción alto anterior y el nuevo, aplicar el factor a la altura
    $alto_thumb = $alttoActual * $facthmb;
    # --- FD Thumbnail -----------------------------------------------------------------------

    # --- CD Imagen grande -------------------------------------------------------------------
    $imagenFinal = imagecreatetruecolor($nuevo_ancho,$nuevo_allto);
    imagecopyresampled($imagenFinal, $img, 0, 0, 0, 1, $nuevo_ancho, $nuevo_allto, $anchoActual, $alttoActual);
    imagejpeg($imagenFinal, "../../gal/grnd/".$imgn, 85);          # Comprimimos y salvamos la imagen
    # --- FD Imagen grande -------------------------------------------------------------------

    # --- CD Imagen grande -------------------------------------------------------------------
    $thumbFinal = imagecreatetruecolor($thumb_ancho,$alto_thumb);
    imagecopyresampled($thumbFinal, $img, 0, 0, 0, 1, $thumb_ancho, $alto_thumb, $anchoActual, $alttoActual);
    imagejpeg($thumbFinal, "../../gal/thmb/".$imgn, 85);          # Comprimimos y salvamos la imagen
    # --- FD Imagen grande -------------------------------------------------------------------

    # Fin del proceso de la imagen -----------------------------------------------------------

    $q1[$i]= mysqli_query($cnxn,"INSERT INTO galerias (galnom,imgn) VALUES ('$galnom[$i]','$imgn[$i]'") or die(mysqli_error($cnxn));

谁能指出我哪里失败了?

提前致谢。

您缺少 mysqli_query()

的结束括号

这个:

$q1[$i]= mysqli_query($cnxn,"
INSERT INTO galerias (galnom,imgn) 
VALUES ('$galnom[$i]','$imgn[$i]'") // error in this line
or die(mysqli_error($cnxn));

应该是:

$q1[$i]= mysqli_query($cnxn,"
INSERT INTO galerias (galnom,imgn) 
VALUES ('$galnom[$i]','$imgn[$i]')") 
or die(mysqli_error($cnxn));

试试这个

$q1[$i]= mysqli_query($cnxn,"INSERT INTO galerias (galnom,imgn) VALUES ('$galnom[$i]','$imgn[$i]')") or die(mysqli_error($cnxn));

尝试编辑您的查询:

$q1[$i]= mysqli_query($cnxn,"INSERT INTO galerias (galnom,imgn) VALUES ('$galnom[$i]','$imgn[$i]'") or die(mysqli_error($cnxn));

有了这个:

$q1= mysqli_query($cnxn,"INSERT INTO galerias (galnom,imgn) VALUES ('$galnom[$i]','$imgn[$i]')") or die(mysqli_error($cnxn));

sql 应该是

$q1[$i]= mysqli_query($cnxn,"INSERT INTO galerias (galnom,imgn) VALUES ('".$galnom[$i]."','".$imgn[$i]."')") or die(mysqli_error($cnxn));

插入查询语法错误: 替换为以下内容:

$q1[$i]= mysqli_query($cnxn,"INSERT INTO galerias (galnom,imgn) VALUES ('$galnom[$i]','$imgn[$i]')") or die(mysqli_error($cnxn));

您将缺少 mysqli_query 的括号:

$q1[$i]= mysqli_query($cnxn,"INSERT INTO galerias (galnom,imgn) VALUES ('$galnom[$i]','$imgn[$i]')") or die(mysqli_error($cnxn));

1st Part:

mysqli_query($cnxn,"INSERT INTO galerias (galnom,imgn) VALUES ('$galnom[$i]','$imgn[$i]')")

2nd Part:

or die(mysqli_error($cnxn))