错误:尝试将图像上载到数据库,然后显示数据库。得到一个致命错误
Fatal error: Uncaught Error: Call to a member function bind_param() on boolean in C:\xampp\htdocs\FinalProject\upload-profilePic.php:22 Stack trace: #0 {main} thrown in C:...
我的代码:
上传图片
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (file_exists($_FILES['upload_file']['tmp_name'])) {
// get temp name and file name
$tmpName = $_FILES['upload_file']['tmp_name'];
$fileName = $_FILES['upload_file']['name'];
$type = $_FILES['upload_file']['type'];
$handler = fopen($tmpName, 'r'); // opens image file stream
$data = fread($handler, filesize($tmpName)); // read byte data
fclose($handler); // close image file stream
$stmt = $con->prepare('insert into images (image_type,
filename, image_data) values(?, ?, ?)');
$stmt->bind_param('sss', $type, $fileName, $data);
$stmt->execute();
$result = $stmt->get_result();
if (!$result) {
echo $con->error;
}
}
}
$result = $con->query('select * from images');
if ($result) {
foreach ($result as $img) {
$name = $img['filename'];
$id = $img['image_id'];
$url = "get-profilePic.php?id=$id";
echo "<h3>$name</h3>";
echo "<img src=\"$url\" alt=\"$name\" />\n\n";
}
}
?>
获取图像
<?php
$imageId = $_GET['id'];
$result = $con->query("select * from images
where image_id = $imageId");
if ($result) {
$image = $result->fetch_object();
$type = $image->image_type;
$data = $image->image_data;
header('Content-Type: ' . $type);
echo $data;
}
?>
什么是$ con?以及它是如何创建的? –
您可以尝试不将图像直接上传到您的数据库。您只需将链接作为参考插入数据库即可。然后,您可以稍后调用该链接来获取图像并将其用于您网站的任何位置。希望这是有道理的。 –
@IanKemp $ con是我与数据库的连接。它被定义。我更改了一个列名,但没有更新它。感谢您的帮助。 – ferrari3000