PHP 函数和 SQL 失败

标签 php mysql function null

我最近将一个代码块转换为一个函数,这样我就可以轻松地多次调用它。我的问题是,一旦我将 block 与函数相关联,它每次都会导致 SQL 查询失败。这是我的代码块:

    function checkEvent()
{
if(!empty($_GET['e']))
    {
        $sql = mysqli_query($link, "SELECT * FROM events WHERE EventID = '" . mysqli_real_escape_string($link, $_GET['e']) . "'");

        if($sql && mysqli_num_rows($sql)==1)
            {
                if($row = mysqli_fetch_row($sql))
                    {
                        $eventid = $row[0];
                        $eventname = $row[1];
                        $desc = $row[2];
                        $time = $row[3];
                        echo $_GET['e'];
                    }
            }               
        else
            {
                echo $sql;
                $failure = "Num Rows Error encountered: " . mysqli_error($link) . " / Num Rows: " . mysqli_num_rows($sqlE);
            }
    }
}

现在,我已在相关位置添加了 echo 来检查当前显示 echo $sql; 的位置,如果我将其更改为 echo "失败。"; 那么它确实会这样做。我试图获得多行结果,但结果为空。我不明白这一点,因为我的 EventID 是一个 AUTO INCRMENT 并且因此必须从 1 开始。我已经三次检查第一个条目也是 1。

我可能没有看到真正明显的东西,我只是不明白为什么这个代码块在我在它周围放置一个功能 block 后立即停止工作。

最佳答案

$link 在您的函数中不存在。您要么需要将其作为参数传递给函数,要么完全跳过它并使用“当前”数据库连接。

“当前”用引号引起来,因为虽然在整个过程中使用单个数据库连接时它应该可以正常工作,但一旦您开始使用多个连接(连接到多个数据库),这种方法就会严重失败。

关于PHP 函数和 SQL 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17118787/

相关文章:

php - LDAP:无法验证用户名中带有句点的用户

mysql - 在 MySQL 中对结果进行分组

mysql - 如果用户至少填写了 3 个字段,则从 mysql 表中选择用户 ID

javascript - 我在使用选定的 jquery 函数时遇到错误

函数内的Python多处理: calling pool.映射

PHP 在每年的 6 月结束一个财政年度

php - 在 PHP 中编写条件 mySQL 查询的语法问题

javascript - Flor BarChart 中的工具提示问题

php - 注册表格的电子邮件激活

java - Android 函数没有被调用