[英]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.