Ben Lefebvre
Ben Lefebvre

Reputation: 379

Cannot connect to MySQL

I am trying to connect to MySQL server (hosted by godaddy) from php using PDO.

But I get this error :

An error occured : SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Note that this is not a database I host.

I was simply given the username and password to construct the database, create the users etc.

function ConnectToDb()
{
    try{
        $dns = 'mysql:host=1.1.1.1;dbname=dummyDbName';
        $username = 'dummyUser';
        $password = 'dummyPassword';
        $LINK = new PDO($dns, $username, $password);
        $LINK->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
        $LINK->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        if (!$LINK){
            die('Could not connect : ' .mysql_error());
        }
        else{
            return $LINK;
        }
    } catch (PDOException $ex){
        echo "An error occured : " .$ex->getMessage();
    }
}

I know that this works on localhost.

I'm using it no problem, but as soon as I try to connect to the live database it fails.

Anyone has an hint?

Thanks

Upvotes: 0

Views: 200

Answers (1)

Ataboy Josef
Ataboy Josef

Reputation: 2101

Follow this format:

$user = "username";
$pass = "password";
$host = "localhost";
$db = "yourDbname";
$dns = "mysql:host=" . $host . ";dbname=" . $db;
$dbh = new PDO($dns, $user, $pass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

when you have to do a query (just an example):

$theid = 10;
$statement = $dbh->prepare('SELECT * FROM yourtable WHERE id = ? and name = ?');
$statement->execute(array($theid,'baronth'));

if you want to see if there's some errors while connecting or doing queryes (and you know how try-catch works), surround it with:

try {
all the code that you wan't to check
}
catch (PDOException $e) {
    echo $e->getMessage();
}

it will echo the error.

Upvotes: 1

Related Questions