用于插入的 PHP MySQL 查询,带有连接赋值变量

汤米冲

我面临着 php 插入多个图像和数据库的唯一帖子 id 的问题。在数据库中,我有图片表和帖子表,当我上传多张图片时,图片将使用当前帖子 ID 存储在图片表中。

问题是插入语法是错误的,因为

$insertValuesSQL

来自每个使用.=串联分配上传图像。

事情是因为我要添加附加的帖子 ID 以便我从帖子 ID 中获取图像,所以我必须插入两个东西,即来自帖子 ID 的内容$insertValuesSQL$last_id来自帖子 ID 的内容。

有人可以帮我纠正语法并上传带有帖子 ID 的图片吗?感谢并感谢您。

错误在:

 $insert = $conn->query("INSERT INTO test (file_name, post_id) VALUES $insertValuesSQL,$last_id");

PHP 完整代码:

$targetDir = "uploads/";
$allowTypes = array('jpg','png','jpeg','gif');

$statusMsg = $errorMsg = $insertValuesSQL = $errorUpload = $errorUploadType = '';
if(!empty(array_filter($_FILES['submit-image']['name']))){
    foreach($_FILES['submit-image']['name'] as $key=>$val){
        // File upload path
        $fileName = basename($_FILES['submit-image']['name'][$key]);
        $targetFilePath = $targetDir . $fileName;

        // Check whether file type is valid
        $fileType = pathinfo($targetFilePath,PATHINFO_EXTENSION);

        if(in_array($fileType, $allowTypes)){
            // Upload file to server
            if(move_uploaded_file($_FILES["submit-image"]["tmp_name"][$key], $targetFilePath)){
                // Image db insert sql
                $insertValuesSQL .= "('".$fileName."'),";
            }else{
                $errorUpload .= $_FILES['submit-image']['name'][$key].', ';
            }
        }else{
            $errorUploadType .= $_FILES['submit-image']['name'][$key].', ';
        }
    }

    if (mysqli_query($conn, $sql)) {
        $last_id = mysqli_insert_id($conn);
        echo "New record created successfully. Last inserted ID is: " . $last_id;
        if(!empty($insertValuesSQL)){
            $insertValuesSQL = trim($insertValuesSQL,',');
            // Insert image file name into database
            $insert = $conn->query("INSERT INTO test (file_name, post_id) VALUES $insertValuesSQL,$last_id");
            if($insert){
                $errorUpload = !empty($errorUpload)?'Upload Error: '.$errorUpload:'';
                $errorUploadType = !empty($errorUploadType)?'File Type Error: '.$errorUploadType:'';
                $errorMsg = !empty($errorUpload)?'<br/>'.$errorUpload.'<br/>'.$errorUploadType:'<br/>'.$errorUploadType;
                $statusMsg = "Files are uploaded successfully.".$errorMsg;
            }else{
                $statusMsg = "Sorry, there was an error uploading your file.";
            }
        }
    } else {
        echo "Error: " . $sql . "<br>" . mysqli_error($conn);
    }

}else{
    $statusMsg = 'Please select a file to upload.';
}

再添加一个

如果我使用下面的代码:

                $insert = $conn->query("INSERT INTO test (file_name) VALUES $insertValuesSQL");

上传多张图片成功,但图片没有post id

参考自: https : //www.codexworld.com/upload-multiple-images-store-in-database-php-mysql/

巴马

您需要将 放入要$last_id插入的每个值列表中,而不是作为单独的参数。但是你不能这样做,因为你是$insertValuesSQL在设置之前创建的$last_id

您可以$insertValuesSQL在设置后移动创建的循环$last_id,但另一种方法是使用 MySQL 的内置函数LAST_INSERT_ID()

$insertValuesSQL .= "('".$fileName."', LAST_INSERT_ID()),";

然后就可以$last_id取出后面的INSERT查询:

$insert = $conn->query("INSERT INTO test (file_name, post_id) VALUES $insertValuesSQL");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP MySQL(插入查询)

来自分类Dev

插入查询不适用于MySQL

来自分类Dev

PHP MySQL的插入查询有麻烦

来自分类Dev

PHP MySQL表单插入查询

来自分类Dev

MySQL插入查询不适用于插入

来自分类Dev

php绑定动态变量的数量,用于批量插入查询

来自分类Dev

如何插入带有PHP值的表.PHP Mysql

来自分类Dev

此代码用于在行不起作用时将变量插入到mysql数据库中(PHP)

来自分类Dev

PHP MySQL插入查询不起作用

来自分类Dev

在超链接中插入php mysql查询

来自分类Dev

MySQL查询未插入数据(PHP)

来自分类Dev

PHP mysql查询插入到哪里

来自分类Dev

MySQL不使用PHP插入查询

来自分类Dev

使用php在mysql中插入查询错误

来自分类Dev

使用 $_POST 的 PHP MySQL 插入查询

来自分类Dev

PHP + MYSQL插入所有列null

来自分类Dev

MySQL查询不适用于PHP

来自分类Dev

带有动态参数的 MySQL 查询 (PHP)

来自分类Dev

PHP MySQL查询变量

来自分类Dev

PHP MySQL查询变量

来自分类Dev

插入数据php mysql

来自分类Dev

PHP / MySQL插入

来自分类Dev

PHP / MySQL无法插入

来自分类Dev

PHP / MySQL无法插入

来自分类Dev

PHP数组的MySQL插入

来自分类Dev

MYSQL / PHP插入日期

来自分类Dev

如何从 mysql 数据库中随机获取变量?(使用带有 dbo 连接的 php)

来自分类Dev

mysql 插入带有选择查询的插入多行

来自分类Dev

MySQL插入到帐户中,用于在PHP上滚动随机的CSV行