gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 11:49:27 26 4
gpt4 key购买 nike

我尝试使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com