gpt4 book ai didi

php - pdo 直接将图像插入数据库 - 总是插入 BLOB - 0B

转载 作者:行者123 更新时间:2023-11-29 01:28:58 25 4
gpt4 key购买 nike

我正在尝试将图像直接插入到 mysql 数据库表中。在我的数据库中,我总是得到 [BLOB - 0B]。它不会将图像插入表格。我也没有收到任何错误。我很困惑..

PHP

ini_set('display_startup_errors',1);
ini_set('display_errors',1);
error_reporting(-1);

include('config.php');
if (isset($_FILES['image']) && $_FILES['image']['size'] > 0)
{
$tmpName = $_FILES['image']['tmp_name'];

$fp = fopen($tmpName, 'r');
$data = fread($fp, filesize($tmpName));
$data = addslashes($data);
fclose($fp);
}

try
{
$stmt = $conn->prepare("INSERT INTO images ( picture ) VALUES ( '$data' )");
// $stmt->bindParam(1, $data, PDO::PARAM_LOB);
$conn->errorInfo();
$stmt->execute();
}
catch(PDOException $e)
{
'Error : ' .$e->getMessage();
}

HTML

<form action="upload.php" method="post">
<input id="image" name="image" type="file" />
<input type="submit" value="Upload" />
</form>

最佳答案

你几乎明白了,你希望 PDO::PARAM_LOB 成为你在上面创建的文件指针,而不是读取 fp 的结果

if (isset($_FILES['image']) && $_FILES['image']['size'] > 0) 
{
$tmpName = $_FILES['image']['tmp_name'];
$fp = fopen($tmpName, 'rb'); // read binary

$stmt = $conn->prepare("INSERT INTO images ( picture ) VALUES ( ? )");
$stmt->bindParam(1, $fp, PDO::PARAM_LOB);
$stmt->execute();
}

关于php - pdo 直接将图像插入数据库 - 总是插入 BLOB - 0B,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23854070/

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