2013-01-23 81 views
2

我有一個名爲config.php文件這個mysqli_connect:mysqli_connect從包含的文件不工作

$DbServer = 'localhost'; 
$DbUser = 'username'; 
$DbPassword = 'password'; 
$DbName = 'dbname'; 
$con = mysqli_connect($DbServer, $DbUser, $DbPassword, $DbName); 

然後我還有一個PHP文件名爲sendingrequest.php:

<?php  
session_start(); 
require_once ('config.php'); 
$Key = mysqli_real_escape_string ($con, $_GET["key"]); 
... 
?> 

這sendingrequest.php總是產生此錯誤消息:

Warning: mysqli_real_escape_string(): Couldn't fetch mysqli in /home/public_html/sendingrequest.php on line 4 

我試圖把mysqli_connect修改腳本()在同一個文件,而不是require_once()了,令人驚訝它的工作原理...

<?php  
session_start(); 
//require_once ('config.php'); 

$DbServer = 'localhost'; 
$DbUser = 'username'; 
$DbPassword = 'password'; 
$DbName = 'dbname'; 
$con = mysqli_connect($DbServer, $DbUser, $DbPassword, $DbName); 

$Key = mysqli_real_escape_string ($con, $_GET["key"]); 
... 
?> 

有什麼錯我的require_once?爲什麼mysqli_real_escape_string未能使用它?謝謝!

+1

我能看到的唯一原因是'require_once'config.php';'失敗。試試這個簡單的例子:'<?php ini_set('display_errors',1); require_once'config.php'; ?>它工作嗎? – hek2mgl

回答

-2

我不知道爲什麼它在兩個命令放在同一個文件時都有效,但是您應該使用這種面向對象的實例化方法。

$con = new mysqli($DbServer, $DbUser, $DbPassword, $DbName); 

$Key = $con->mysqli_real_escape_string ($_GET["key"]); 
+0

它應該是'$ con = new mysqli($ DbServer,$ DbUser,$ DbPassword,$ DbName);' – ksg91

+0

我的不好。糾正。剛剛醒來;) – JakeGould

+0

OP爲什麼要這樣做?它會解決問題嗎?它快嗎?更安全?或者只是'更好'?我不知道 – hek2mgl