I am trying to connect mysql from within PHP function. The credentials are stored in a separate PHP file, which I am including it inside the function. But when I run the script, I am getting following error:

Warning: mysql_query(): A link to the server could not be established in C:\xamp
p\htdocs\abc\test.php on line 12. Access denied for user 'ODBC'@'localhost' (using password: NO)


private function insertToMysql()
{
    include_once('connect_db.php');

    $connection = mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or die('Oops connection error -> ' . mysql_error());
    mysql_select_db(DB_DATABASE, $connection) or die('Database error -> ' . mysql_error());

    //Queries

}

I tried echoing the include_once and it returned 1. This means, the connect_db.php is included, but somehow the constants are not loaded. What could be the issue??? The credentials are perfect and I verified them. I am not a newbie to PHP.

Hey,

I don't think you can do this.. I'm guessing your database information is in the file, so therefore, the connection code needs to be there as well.

$connection = mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or die('Oops connection error -> ' . mysql_error());
    mysql_select_db(DB_DATABASE, $connection) or die('Database error -> ' . mysql_error());

if these details are correct, you can then include/require/require_once the file and a connection to the database will be established WHICH will enable you to execute queries.. It doesn't know what DB_SERVER etc is/where it's stored.

EDIT: Can you post what is stored inside "connect_db", removing passwords etc.. =) Also, it's not a good idea to use mysql_* anymore as it's being depreciated.. Use mysqli_* etc..

Just saying, that the use of mysql_ is getting deprecated. You could use PDO_MySQL or MySQLi

Thanks phorce!!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.