为什么我没有看到错误消息?

时间:2013-05-29 10:42:43

标签: php

我多年来第一次感受到我的方式。我正在尝试执行一个简单的select语句。我已经确认该语句直接针对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
}

感谢您的帮助!

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:4)

$mysqli未在函数中定义,并且PHP引发致命错误,使用标准异常 可以捕获。

您需要启用错误报告(display_errors在php.ini中设置为On,或通过ini_set设置为,例如:ini_set('display_errors', '1'););