如何在mysql数据库连接中使用抛出异常[重复]

Posted

技术标签:

【中文标题】如何在mysql数据库连接中使用抛出异常[重复]【英文标题】:how to use throw exception in mysql database connect [duplicate] 【发布时间】:2012-04-07 20:45:42 【问题描述】:

我遇到了这个:-

php Error handling: die() Vs trigger_error() Vs throw Exception

并且明白抛出异常更好

如何在此代码中替换 die 并在此处使用 throw 异常:-

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_db = "localhost";
$database_db = "database";
$username_db = "root";
$password_db = "password";
$db = mysqli_connect($hostname_db, $username_db, $password_db) or die("Unable to connect with Database"); 
?>

【问题讨论】:

问自己同样的事情。感谢您发布这个问题:) 【参考方案1】:

这里记录了http://ie2.php.net/manual/en/mysqli.error.php

if (mysqli_connect_errno()) 
    throw new RuntimeException("Connect failed: %s\n", mysqli_connect_error());

【讨论】:

好的$db = mysqli_connect($hostname_db, $username_db, $password_db) or die("Unable to connect with Database");我必须用这个$db = mysqli_connect($hostname_db, $username_db, $password_db); if (mysqli_connect_errno()) throw new RuntimeException("Connect failed: %s\n", mysqli_connect_error()); 替换【参考方案2】:
try

    if ($db = mysqli_connect($hostname_db, $username_db, $password_db))
    
        //do something
    
    else
    
        throw new Exception('Unable to connect');
    

catch(Exception $e)

    echo $e->getMessage();

【讨论】:

我需要用你的代码替换die("Unable to connect with Database");?另外你能告诉我@$_POST['variable']是什么@ 你应该用这个替换你的最后一行。 @ - 启用静默模式,不会回显错误,但仍会记录在服务器的 error.log 文件中。我想你知道$_POST['variable'] 是什么。 是的,我知道...感谢您提供的信息 :) 还有一件事,因为我已经在 include_db 文件中添加了用于数据库连接的代码......所以我应该把什么放在//do something 区域,因为它只需要连接或显示错误... 您可以将其留空,如果没有错误,将继续执行 try...catch 块之后的代码。

以上是关于如何在mysql数据库连接中使用抛出异常[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何对mysql抛出异常(php)

MySQL超时过期后c3p0的连接抛出异常

求助高手帮我解决java中连接数据库时配置文件的问题,总是抛出空指针的异常

为啥mysql PDO不会在失败时抛出错误[重复]

如何Mysql触发器中抛出一个异常

C#连接MySQL数据库的问题,主界面调用这个函数,结果返回值是-1,请问为啥会抛出异常呢?应该怎么改呢?