【发布时间】:2020-07-20 06:07:24
【问题描述】:
我正在使用 PHP 进行编程,并将 XAMPP 用于 Apache 和 MySQL。
我已经搜索并尝试了两天将图像 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();
?>
当查询被执行时,它会抛出no error。事实上,执行了 INSERT 查询并添加了一个新表行。第一个和第二个字段(id[int] 和 id_link[int])有数据,但第三个字段(imagez [BLOB])是空的。
我在 phpMyAdmin 中执行了一个 SQL INSERT QUERY(通过上传本地图像),它工作正常...
【问题讨论】:
-
不要这样随意使用
addslashes。这是一个几乎没用的函数,几乎总是不适合手头的工作,尤其是 SQL。