0

多年来,我第一次对 php 有所了解。我正在尝试执行一个简单的选择语句。我已经确认该声明直接针对 mysql。我的 php 没有完成。我想知道为什么我的 real_query 不起作用,我还想知道如何在这种情况下哄骗一条错误消息。这是代码:

function getRoot($nid)
{
    echo $nid; //displays 0
    try 
    {
        echo "Hello?"; //This displays

        //Why doesn't this work?!
        if($mysqli->real_query("SELECT * FROM gem, bundles WHERE gem.nid = bundles.baseNid AND bundles.nid = " . $nid))
        {
            echo "dafuq?"; //does not display
        }
        else
        {
            echo "foo"; //doesn't display
            echo $mysqli->error; //doesn't display
        }
    }
    catch (Exception $e)
    {
        echo "Tralalalala"; //doesn't display
    }
    echo "teeheehee"; //doesn't display
}

谢谢你的帮助!

4

2 回答 2

6

函数中没有$mysqli声明变量,因此您的代码会产生FATAL ERROR- 您正在调用非对象的方法。如果$mysqli是全局变量,则必须global $mysqli;在函数开头添加

于 2013-05-29T10:45:51.000 回答
4

$mysqli没有在函数中定义,并且 PHP 会抛出一个致命错误,使用标准异常是无法捕获的。

需要开启报错(php.ini中display_errors设置为On,或者通过ini_set,eg: ini_set('display_errors', '1'););

于 2013-05-29T10:45:43.150 回答