致命错误:对第86行/home/u163876569/public_html/register.php中的非对象调用成员函数prepare()
我不知道这个错误意味着什么有人知道它意味着什么吗 致命错误:对中的非对象调用成员函数prepare() /第86行的home/u163876569/public_html/register.php致命错误:对第86行/home/u163876569/public_html/register.php中的非对象调用成员函数prepare(),php,mysql,Php,Mysql,我不知道这个错误意味着什么有人知道它意味着什么吗 致命错误:对中的非对象调用成员函数prepare() /第86行的home/u163876569/public_html/register.php 这是第86行,请先连接数据库 $odb = new PDO("mysql:host=$my_db_host;dbname=$my_db_database", $my_db_username, $my_db_password); 如果在这方面没有产生任何错误,并且您仍然会得到致命错误:对非对象调用成员
这是第86行,请先连接数据库
$odb = new PDO("mysql:host=$my_db_host;dbname=$my_db_database", $my_db_username, $my_db_password);
如果在这方面没有产生任何错误,并且您仍然会得到
致命错误:对非对象调用成员函数prepare()
错误,我可以猜测$odb
变量的范围可能有问题请检查对象$odb
,因为它没有创建。
尝试打印$odb
:
var_dump($odb); die;
如果给您错误,则表示您的
$odb
尚未创建。首先检查PDO连接是否成功。为什么要捕获异常?这正是导致OP看到的错误的原因。@deceze这有什么错?我假设1)他正在开发2)他将看到echoIfnew PDO
抛出异常,这意味着它无法连接到数据库。如果无法连接到数据库,则几乎没有理由执行以下任何代码:;在这种情况下,您希望停止应用程序。通过在不退出的情况下捕获异常,实际上是在阻止应用程序按应有的方式停止。只是不捕获异常,这会导致显示错误消息并停止应用程序。@deceze是的,如果你是正确的,我将稍微修改一下代码。很简单。做不接住。这个例外。
var_dump($odb); die;