2014-09-24 77 views
1

我正在更新我現有的代碼。我正嘗試使用「mysqli」連接數據庫。我有以下文件:使用mysqli配置文件

  1. 的config.php
  2. function.php
  3. 的index.php
  4. 的header.php

的config.php

<?php 
$database_host = 'localhost'; 
$database_username = 'root'; 
$database_password = 'root'; 
$database_name = 'db_name'; 
?> 

的header.php

<?php 
include "config.php"; 
$link = mysqli_connect($database_host, $database_username, $database_password,$database_name); 
if (mysqli_connect_errno()) 
    die('Could not connect: ' . mysqli_connect_error()); 
?> 

function.php

<?php 
function mysqlQuery($query) { 
    $result = mysqli_query($link,$query); 
    return $result; 
} 
?> 

的index.php

<?php 
    include "header.php"; 
    include "function.php"; 
    $sql   = "SELECT * FROM `posts`"; 
    mysqlQuery($sql); 
    ?> 

我得到的錯誤是這樣; 「未定義的變量:鏈接在/var/www/folder_path/function.php在線..」 我不知道我的代碼有什麼問題。我知道這是非常基本的問題,但我仍然無法找到解決方案。 我也嘗試添加行「require('config.php');」在function.php 請幫助。提前致謝。

+0

當時它的確如此是否需要將測試用具分爲四個部分? – 2014-09-24 08:35:41

+0

查詢後,您必須「獲取」結果並「打印」它們。但是錯誤與範圍有關。 – DanFromGermany 2014-09-24 08:45:20

回答

0

您還需要通過自超出範圍的連接:

function.php

function mysqlQuery($query, $link) { 
          //^this one also 
    $result = mysqli_query($link, $query); 
    return $result; 
} 

的index.php

$sql = 'SELECT * FROM `posts`'; 
mysqlQuery($sql, $link); 
+1

爲什麼downvote? +1,依賴注入優於使用'global'。 – DanFromGermany 2014-09-24 08:38:47

+0

@DanFromGermany是基於OP目前有什麼工作,這似乎沒問題 – Ghost 2014-09-24 08:42:28