我正在使用PHP进行编程,并对Apache和MySQL使用XAMPP。
我已经搜索并尝试了两天,将图像URL转换为二进制变量。完成此过程后,我尝试将其作为BLOB插入SQL数据库表中。
我尝试了几种方法(以下未包括),例如base64(),file_get_contents(),保存图像文件甚至甚至是[[cURL ...
这是这是“令人迷惑的迷幻药”PHP
代码:<?php
// APPROACH #1
$blob = file_get_contents('http://www.domainname.com/random/page/IMAGE.png');
// APPROACH #2
$bin = base64_encode($blob);
// INSERT INTO QUERY
$stmt = $db->prepare("INSERT INTO imagezzz (id_link, imagez) VALUES (?,?)");
// APPROACH #1
$stmt->bind_param("ib", $number, $blob);
// APPROACH #2
$stmt->bind_param("ib", $number, $bin);
$stmt->execute();
?>
执行查询时,它引发。实际上,将执行INSERT查询并<。第一个字段和第二个字段(id [int]和id_link [int])具有数据,但是第三个字段(imagez [BLOB])为空。我已经在phpMyAdmin内部执行了SQL INSERT QUERY(通过上传本地图像),并且可以正常工作...无错误
✅🎉🎊找到答案🎊🎉✅
// Get content of URL
$blob =file_get_contents('https://casacenterpisos.com/image/cache/catalog/Piso%20Cerâmico%20Brilhante%20Borda%20Bold%20Blank%2025x25cm%20%20Cod.%2079622-500x500.jpg');
// Convert $blob to binary
$bin = base64_encode($blob);
// Convert $bin to hexadecimal
$hex = bin2hex($bin);
// INSERT INTO QUERY
$stmt = $db->prepare("INSERT INTO imagezzz (id_link, imagez) VALUES (?,?)");
// Bind parameter as a STRING(s) and NOT BLOB(b)
$stmt->bind_param("is", $number, $hex);
$stmt->execute();