エラーを取得:イメージをデータベースにアップロードしようとしていて、データベースから表示しようとしています。致命的なエラー
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