2016-11-04 153 views
-1

我的錯誤是:未定義的變量當變量被分配一個值

Notice: Undefined variable: sql in C:\xampp\htdocs\framework\frame.php on line 20

說明:未定義變量:用C SQL:\ XAMPP \ htdocs中\上線框架\ frame.php 20

說明:未定義的變量:SQL在C:\ XAMPP \ htdocs中\上線框架\ frame.php 20

說明:未定義的變量:SQL在C:\ XAMPP \ htdocs中\線20上框架\ frame.php

注意:未定義變量:DBC在C:\ XAMPP \ htdocs中上線\的login.php 17

致命錯誤:調用一個成員函數查詢()上的空在C:\ XAMPP \ htdocs中\上線17的login.php

我有包括另一(PHP)的文件

的config.php:

$sql_host = "localhost"; 
$sql_user = "root"; 
$sql_pass = ""; 
$sql_databasename = "data"; 

簡單,對不對?

我們frame.php:

require($_SERVER['DOCUMENT_ROOT'] . "/inc/config.php"); 
$sql = array(
     "host" => $sql_host, 
     "user" => $sql_user, 
     "pass" => $sql_pass, 
     "dbid" => $sql_databasename, 
    ); 

    foreach ($sql as $v){ 
     if (!isset($v)){ 
      die("ERROR: SQL LOGIN INVALID"); 
     } 
    } 

    function connectSQL(){ 
     $dbC = new mysqli($sql["host"], $sql["user"], $sql["pass"], $sql["dbid"]); 

     if ($dbC->connect_error){ 
      die("SQL Error: " . $dbC->connection_error); 
     } 
    } 

而且我不明白爲什麼會這樣?有任何想法嗎?

+0

瞭解變量的作用域。 –

回答

0

這是一個可變範圍問題,$sql不在connectSQL函數的範圍內。我建議將它作爲一個參數:

function connectSQL($sql){ 
    ... 
} 

叫它:

connectSQL($sql); 
+0

啊!謝謝!這是正確的在我面前。 – iceybeta