PHP - 将图像 URL 转换为 SQL BLOB
PHP - Convert Image URL to SQL BLOB
我正在使用 PHP 编程并使用 XAMPP 用于 Apache 和 MySQL.
我已经搜索并尝试了两天将图像 URL 转换为二进制变量的方法。在此过程之后,我尝试将其作为 BLOB 插入 SQL 数据库 table.
我尝试了几种方法(下面不包括),例如base64()、file_get_contents()、保存图像文件甚至cURL...
这是 SQL 数据库 table 结构的图片:
这里是 "mind blowing psychedelic" 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 查询并添加了 新 table 行 。第一和第二个字段(id[int]和id_link[int])有数据,但第三个字段(imagez [BLOB]) 为空。
我在 phpMyAdmin 中执行了 SQL INSERT QUERY(通过上传本地图像),它工作正常...
如果您可以使用 file_get_contents
获取文件,这应该可行:
$blob = file_get_contents('http://www.domainname.com/random/page/IMAGE.png');
print "Image is " . strlen($blob) . " bytes long\n";
$bin = base64_encode($blob);
$estimate = round(strlen($blob)/0.75);
print "Blob is " . strlen($bin) . " bytes long (expecting about {$estimate}\n";
$stmt = $db->prepare("INSERT INTO imagezzz (id_link, imagez) VALUES (?,?)");
$stmt->execute([ $number, $bin ]);
我正在使用 PHP 编程并使用 XAMPP 用于 Apache 和 MySQL.
我已经搜索并尝试了两天将图像 URL 转换为二进制变量的方法。在此过程之后,我尝试将其作为 BLOB 插入 SQL 数据库 table.
我尝试了几种方法(下面不包括),例如base64()、file_get_contents()、保存图像文件甚至cURL...
这是 SQL 数据库 table 结构的图片:
这里是 "mind blowing psychedelic" 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 查询并添加了 新 table 行 。第一和第二个字段(id[int]和id_link[int])有数据,但第三个字段(imagez [BLOB]) 为空。
我在 phpMyAdmin 中执行了 SQL INSERT QUERY(通过上传本地图像),它工作正常...
如果您可以使用 file_get_contents
获取文件,这应该可行:
$blob = file_get_contents('http://www.domainname.com/random/page/IMAGE.png');
print "Image is " . strlen($blob) . " bytes long\n";
$bin = base64_encode($blob);
$estimate = round(strlen($blob)/0.75);
print "Blob is " . strlen($bin) . " bytes long (expecting about {$estimate}\n";
$stmt = $db->prepare("INSERT INTO imagezzz (id_link, imagez) VALUES (?,?)");
$stmt->execute([ $number, $bin ]);