私はそのようなスクリプトを持っています。これには、画像のアップロードを処理するためのスクリプトがモデルに含まれています。次に、次のように addImage() を使用してそのファイル内の関数を呼び出します。
<?php
include '../model/imageUploadHandler.php';
$imgTitle = $_POST["image_title"];
$imgDescr = $_POST["image_description"];
$target_path = "../images/";
$filename = basename( $_FILES['file']['name']);
$target_path = $target_path . $filename;
addImage($imgTitle, $imgDescr, $filename);
?>
次に、imageUploadHandler.php に、問題なく呼び出される関数を記述します。
<?php
include('./db_conn.php');
function addImage($title, $description, $target_path)
{
if(move_uploaded_file($_FILES['file']['tmp_name'], $target_path))
{
$sql = "INSERT INTO image_data (filename, title, description) VALUES ('$target_path','$title','$description')";
echo $sql;
if (!mysqli_query($con, $sql))
{
die('Error: ' . mysqli_error());
}
echo "1 record added";
echo "The file " . basename( $_FILES['file']['name']) . " has been uploaded";
echo $title;
echo $description;
}
else
{
echo "There was an error uploading the file, please try again!";
}
}
?>
データベースに接続する必要がある場所ならどこでも db_conn.php を含めることができるように、「db_conn.php」スクリプトを含めました。ここにdb_conn.phpがあります
<?php
// Create connection
$con = mysqli_connect("","root","root", "image_info");
// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>
インクルードせずに接続スクリプトを直接インラインに配置すると、データベースが接続され、すべてが正常に機能します。ただし、外部ファイル (db_conn.php) をインクルードしようとすると、何らかの理由で $con 変数を imageUploadHandler.php で使用できません。
理由はありますか?