检查mysql_connect()是否失败


Check whether a mysql_connect() failed or not?

嘿,我想知道我的sql查询是否失败了。我希望它,所以,如果它确实失败重定向到表单页面使用下面的代码:

$checkconnection = mysql_connect('localhost', $dbuser, $dbpass)
                                                or die();

if(!$checkconnection)
{
$_SESSION['errormsg'] = "<div style='padding-left: 50px;color:#FF0000'>Cannot connect to specfied database!</div>";
header("Location: install.php");
}else{
echo('Connection Successful!');
}

使用它的意思是:

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'nzcraftn_admin'@'localhost' (using password: YES) in /home/nzcraftn/public_html/phishnet/install/install_submit.php on line 17

试试这个

$checkconnection = @mysql_connect('localhost', $dbuser, $dbpass)
它将隐藏默认错误并触发您自己的

mysql_connect返回值为false仅表示失败。如果返回FALSE,则or die()表达式将退出php脚本。这就是为什么你不使用它的任何输出的原因。

删除or die()命令,并在if( !$checkconnection )子句中显示实际错误。报告的错误可以使用mysql_error()检索。

它只显示警告,因为您的or die()没有输出任何内容(空参数列表)。试试这个:

<?php
    //Start the session
    session_start(); 
    //Do the conntection
    $checkconnection = @mysql_connect('localhost', $dbuser, $dbpass);
    //Check if it's valid
    if(!$checkconnection) {
        //Add it up to the session, and redirect
        $_SESSION['errormsg'] = "<div style='padding-left: 50px;color:#FF0000'>Cannot connect to specfied database!</div>";
        session_write_close();
        header("Location: install.php");
        exit();
    } else{
        //Yay
        echo('Connection Successful!');
    }
?>

创世纪的答案只是抑制了警告,但仍然可能工作

如果你想让它"干净",你可以尝试/catch错误:

(直接来自php.net/mysql_connect:

上的评论)
// Assign variables
        global $db_connection, $db_server, $db_database, $db_username, $db_password;
        $db_server = $server;
        $db_database = $database;
        $db_username = $username;
        $db_password = $password;
        // Attempt connection
        try
        {
            // Create connection to MYSQL database
            // Fourth true parameter will allow for multiple connections to be made
            $db_connection = mysql_connect ($server, $username, $password, true);
            mysql_select_db ($database);
            if (!$db_connection)
            {
                throw new Exception('MySQL Connection Database Error: ' . mysql_error());
            }
            else
            {
                $CONNECTED = true;
            }
        }
        catch (Exception $e)
        {
            echo $e->getMessage();
        }