簡體   English   中英

如何從config.php獲取值?

[英]how to get values from config.php?

我可以在config.php文件中放置一個函數嗎?

config.php:

<?php

$dbhost="localhost";  
$dbusername="user1"; 
$dbpassword="123456";
$dbname="dbname1"; 

$table_name="table1";

$db=mysql_connect($dbhost,$dbusername,$dbpassword) or die (mysql_error());
@mysql_select_db($dbname) or die (mysql_error());


function next_auto_increment(){
    $Result_auto_increment= mysql_query("SELECT `AUTO_INCREMENT` FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '$dbname' AND TABLE_NAME = '$table_name' ");
    $row_auto_increment=mysql_fetch_array($Result_auto_increment);
    $auto_increment = $row_auto_increment['AUTO_INCREMENT']; 
    return $auto_increment;
}

?>

然后我從其他php調用func,如下所示:

require_once "config.php";
$the_next_auto_increment = next_auto_increment();

但是該功能不起作用!

如果我將功能放在相同的php文件中,則可以工作,但在config.php中不能

$ dbname和$ table_name變量不在next_auto_increment功能塊的范圍內。

您可以將它們作為參數傳遞:

function next_auto_increment($dbname, $table_name){
    ...
}    

或者,您可以使用global將它們拉入范圍:

function next_auto_increment(){
    global $dbname;
    global $table_name;

    ...
}

我還需要說明強制性,“您應該使用PDO而不是mysql_connect”!

一方面,不建議使用所有mysql_ *函數。 我也不會使用mysqli_ *函數。 只是PDO-使用起來更加安全,您不必擔心它會在未來很多年內被棄用。

但是,重點是,僅此一項就可能導致腳本失敗並且什么也不做。 如果未將php.ini設置為向您顯示錯誤,則可能不會很明顯。

嘗試將所有mysql_ *函數更改為mysqli_ *,除了少數地方,它們幾乎是等效的。 mysql_select_db需要...成為mysqli_select_db($ db,$ dbname)。 mysqli_query也是如此。

還有,全局變量。 next_auto_increment函數中有幾個全局定義的變量,這些變量無法從函數中訪問。 就像是:

global $db;
global $dbname;
global $table_name;

請參閱以下內容,以獲取在開發過程中出現的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM