php - 使用 FK 在表中插入图像的目录路径 [MySQL]

标签 php mysql pdo

我尝试使用 PHP-PDO 在 FK (MySQL) 表中插入图像的目录路径,但收到此错误:

  • SQLSTATE[23000]:违反完整性约束:1452 无法添加或更新子行:外键约束失败 (bd-veiculos.fotos, CONSTRAINT fk_fotos_veiculos 外键 (veiculos_idveiculos) 引用 mydb.veiculos (idveiculos) 删除无操作更新时不执行任何操作)

这是我的 table : enter image description here

我正在用 php 构建 CRUD,我有一个包含汽车信息的表,如下所示: enter image description here

我有一个名为“AddImages”的提交按钮,当我单击它时,我将通过 POST 发送我想要更改的汽车 ID,这是我发送的 php 页面...

上传图像表单.php: enter image description here

之后我选择一些图像,然后单击“提交”并将信息发送到下一个 php 代码:

    <?php
    include "dbconfig.php";
    if(isset($_POST['submit'])){
        $id = trim(strip_tags($_POST['id']));

        # INFO IMAGEM
        $file       = $_FILES['img'];
        $numFile    = count(array_filter($file['name']));

        # PASTA
        $folder     = 'uploads';

        # REQUISITOS
        $permite    = array('image/jpeg', 'image/png');
        $maxSize    = 1024 * 1024 * 5;

        # MENSAGENS
        $msg        = array();
        $errorMsg   = array(
            1 => 'O arquivo no upload é maior do que o limite definido em upload_max_filesize no php.ini.',
            2 => 'O arquivo ultrapassa o limite de tamanho em MAX_FILE_SIZE que foi especificado no formulário HTML',
            3 => 'o upload do arquivo foi feito parcialmente',
            4 => 'Não foi feito o upload do arquivo'
        );

        if($numFile <= 0)
            echo 'Selecione uma Imagem!';
        else{
            for($i = 0; $i < $numFile; $i++){
                $name   = $file['name'][$i];
                $type   = $file['type'][$i];
                $size   = $file['size'][$i];
                $error  = $file['error'][$i];
                $tmp    = $file['tmp_name'][$i];

                $extensao = @end(explode('.', $name));
                $novoNome = rand().".$extensao";

                if($error != 0)
                    $msg[] = "<b>$name :</b> ".$errorMsg[$error];
                else if(!in_array($type, $permite))
                    $msg[] = "<b>$name :</b> Erro imagem não suportada!";
                else if($size > $maxSize)
                    $msg[] = "<b>$name :</b> Erro imagem ultrapassa o limite de 5MB";
                else{

                    if(move_uploaded_file($tmp, $folder.'/'.$novoNome)):
                        $msg[] = "<b>$name :</b> Upload Realizado com Sucesso!";
                        $imgpath[] = $folder.'/'.$novoNome;
                        else:
                            $msg[] = "<b>$name :</b> Desculpe! Ocorreu um erro...";
                    endif;
                }

                foreach($msg as $pop)
                    echo $pop.'<br>';
            }
        }
        try
        {
            $sql = "INSERT INTO fotos (tbl_imagecar) VALUES ";

            foreach ($imgpath as $path)
            {
                $sql .= " ('$path'),";
            }

            $sql = substr ($sql,0,strlen ($sql)-1);
            $result = $DB_con->exec($sql);
            echo "Dados criados com sucesso.<br><br>";
        }

        catch(PDOException $e)
        {
            echo $e->getMessage();
        }
    }
?>
<br><br>
<a href="index.php" title="">INDEX</a>
<a href="read.php" title""=>LISTAR</a>

这是我尝试用来将信息放入数据库的查询:

INSERT INTO fotos SET `tbl_imagecar` = 'uploads/19350.JPG', `veiculos_idveiculos` = (SELECT idveiculos FROM veiculos WHERE idveiculos = 3

从那里我无法继续编写我的代码。 (抱歉我的英语不好)

最佳答案

您收到数据库外键破坏错误。要解决这个问题 你的领域

mydb.veiculos (idveiculos)

需要首先插入/更新相同的值(例如 13232), 您正在尝试将其插入表字段

bd-veiculos.fotos.veiculos_idveiculos

关于php - 使用 FK 在表中插入图像的目录路径 [MySQL],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34385308/

相关文章:

PHP:iterator_to_array() 可以在 MongoCursor 上抛出异常吗

php - 计算行数

php - .htaccess 重定向问题

php - 带有可选参数的 PDO 准备语句

php - PDO更新返回成功,但不更新数据库

javascript - FullCalendar Json 字符串引号属性

php - 如何显示MySQL中的字段?

php - 当 php.ini 存在时,PDO 从 phpinfo() 中消失

php - 页面加载速度非常慢 - ASP/PHP CSS 文件延迟

php - 为什么即使升级服务器后,我的网站仍会时不时地显示错误 502?