1

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.

Contents of connect_db.php:

<?php
  define('DB_SERVER', 'localhost');
  define('DB_USERNAME', 'root');
  define('DB_PASSWORD', '<MyPassword>');
  define('DB_DATABASE', 'testdb');
?>
4

2 回答 2

0

remove connection handler

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

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

    //Queries

}
于 2012-12-08T21:43:45.087 回答
0

Seems like $connection is a local variable, you can fix this by making it global.

Do this like this.

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());

function insertToMysql()
{
    //Queries
    mysql_query('Some query');
}
于 2012-12-08T21:45:43.153 回答