【问题标题】:PHP function fails to connect to the database to call queryPHP函数连接数据库调用查询失败
【发布时间】:2015-03-31 09:26:39
【问题描述】:

我有三个.php 文件。

db_conx.php

$db_conx = mysqli_connect("localhost", "admin", "admin", "gestiune");
    // Evaluate the connection
    if (mysqli_connect_errno()) {
        echo mysqli_connect_error();
        exit();
}

functions.php

function deplata($pid){
        $sqlp = "SELECT * FROM plati WHERE user_id";
        $queryp = mysqli_query($db_conx, $sqlp);
        $type = "day";
        $payments = 0;
        $salary = 80;
        $days = 4;
        $topay = 0;
        while($getplata = mysqli_fetch_assoc($queryp)){
            $plati += $getplata['valoare'];
        }
        if($tip == "day"){
            $topay = $days * $salary;
        }

        return $topay;
}

我有 index.php 文件来调用这些文件并使用它们。

include_once("php_includes/db_conx.php");
include_once("php_includes/functii.php");

$salariu = deplata(5);
echo $salariu;

问题是它无法连接到数据库并返回一些错误:

注意:未定义变量:db_conx in D:\xampp\htdocs\manager\pages\php_includes\functions.php 在第 5 行

警告:mysqli_query() 期望参数 1 为 mysqli,给定 null 在 D:\xampp\htdocs\manager\pages\php_includes\functions.php 第 5 行

警告:mysqli_fetch_assoc() 期望参数 1 为 mysqli_result, D:\xampp\htdocs\manager\pages\php_includes\functions.php 中给出的 null 在第 11 行

然后它打印该值(因为它当前不使用数据库任何值)。 我尝试了什么:我尝试将functions.php 内容直接放入index.php 文件中,我尝试在functions.php 文件中调用db_conx.php 文件。

【问题讨论】:

  • 它没有得到$db_conx 你需要在你的functions.php中包含那个文件
  • 你的sql语句不对:"SELECT * FROM plati WHERE user_id=$pid"
  • 我试过了,这没有帮助。解决问题的是@Developing 的建议:global $db_conx; 感谢您的宝贵时间!

标签: php mysql mysqli


【解决方案1】:

你需要在function.php.checkout下面的代码中定义值

function.php

function deplata($pid){

   global $db_conx;

    $sqlp = "SELECT * FROM plati WHERE user_id";
    $queryp = mysqli_query($db_conx, $sqlp);
    $type = "day";
    $payments = 0;
    $salary = 80;
    $days = 4;
    $topay = 0;
    while($getplata = mysqli_fetch_assoc($queryp)){
        $plati += $getplata['valoare'];
    }
    if($tip == "day"){
        $topay = $days * $salary;
    }

    return $topay;
}

index.php

检查index.php中的拼写错误

include_once("php_includes/function.php");

【讨论】:

  • 您好!感谢你们对我的帮助。我是功能初学者,这有帮助。只要网站允许,我就会将此标记为获胜答案。再次感谢!
  • 很高兴为您提供帮助:)
  • 有错别字是因为我在帖子中将变量和名称翻译成英文,所以你们可以在我的脚本中找到逻辑。在我的文件中,它们是罗马尼亚语。
猜你喜欢
  • 2020-05-05
  • 2019-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多