2016-11-04 108 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