2014-09-24 78 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