0
我有一個像這樣的腳本,其中包括我的模型中處理圖片上傳的腳本。然後,我打電話與addImage(該文件的功能),像這樣:PHP數據庫連接變量不包括在內
<?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
任何想法爲什麼?
那麼首選或標準解決方案是什麼?是宣佈一個全局變量混亂,或者是或多或少的標準? – 2013-03-07 16:54:38
全局應該謹慎使用,可能難以管理。但是有一些東西,比如數據庫連接,可以在應用程序中全局使用,所以使用全局是有道理的。一些框架建立了框架內應該如何完成的偏好(Zend框架使用全局註冊表),但它最終是您的選擇。 – datasage 2013-03-07 16:58:15
所以我宣佈$ con爲全球$ con,但它仍然不可用。我應該使用$ _GLOBALS []關聯數組嗎? – 2013-03-07 17:00:05