2017-06-10 5 views
0

Kann ich eine Funktion in die Datei config.php einfügen?Wie bekomme ich Werte aus der 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; 
} 

?> 

dann rufe ich die func von anderen PHP wie folgt aus:

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

aber die Funktion funktioniert nicht!

wenn ich die Funktion in der gleichen PHP-Datei setzen, funktioniert es aber in config.php nicht

Antwort

0

Die $ dbname und $ table_name Variablen sind nicht in den Anwendungsbereich des next_auto_increment Funktionsbausteins.

Sie können sie in als Argumente übergeben:

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

Oder können Sie global nutzen sie in den Bereich zu ziehen:

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

    ... 
} 

Ich brauche auch die obligatorische angeben, „Sie sollten mit PDO und nicht mysql_connect "!

+0

Ich habe verwenden PDO-Verbindung nicht vor, so kann ich es nicht verwenden. Aber wie bekomme ich den var $ dbusername von einer anderen php-Datei? ** Ich will jetzt nur den Dateinamen von dort bekommen. Ich kann die Funktion in andere PHP-Datei setzen, kein Problem, aber ich brauche die Datenbankname – Json

+0

@Json Werfen Sie einen Blick auf: http://php.net/manual/en/language.variables.scope.php – Drew

0

Zum einen sind alle mysql_ * Funktionen veraltet. Ich würde die mysqli_ * -Funktionen auch nicht verwenden. Einfach PDO - es ist viel sicherer zu verwenden und Sie müssen sich keine Sorgen darüber machen, dass es für viele Jahre veraltet ist.

Aber der Punkt ist, dies allein kann dazu führen, dass Ihr Skript fehlschlägt und nichts tut. Wenn Ihre php.ini nicht so eingestellt ist, dass Sie Fehler anzeigen, ist dies möglicherweise nicht offensichtlich.

Versuchen Sie, alle mysql_ * -Funktionen auf mysqli_ * zu ändern - sie sind meistens äquivalent mit Ausnahme einiger weniger Stellen. mysql_select_db benötigt ... mysqli_select_db ($ db, $ dbname) zu sein. So würde mysqli_query.

Und auch, Globals. Es gibt mehrere Variablen in Ihrer next_auto_increment-Funktion, die global definiert sind und auf die von Ihrer Funktion aus nicht zugegriffen werden kann. Etwas wie:

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

See the following to get errors to show up for you while developing.

+0

Ich werde eine nehmen schau auf die PDO, ich weiß das nicht :( – Json

Verwandte Themen