Jump to content

Warning: mysql_connect(): Access denied


tapewormbyte

Recommended Posts

I'm working offline, with apache on ubuntu. I have written my own session handler and my mysql connects, inserts and updates the session handler just fine. I'm in the process of writing a "registration" form, and when I attempt to INSERT the data after it has been validated I get the warning: mysql_connect(): Access denied for user 'root'@'localhost' (using password: YES)

 

But, I'm already connected? Why would this happen?

 

I'm sure if it were attempting to connect when already connected, it would tell me so. Likewise if it were a syntax error. Any ideas?

Link to comment
Share on other sites

But, I'm already connected? Why would this happen?

 

I'm sure if it were attempting to connect when already connected, it would tell me so. Likewise if it were a syntax error. Any ideas?

Respectively:

- I don't know, are you?

- Because the username/password combination isn't a valid login to MySQL.

- Probably not, actually. But it wouldn't be a problem.

- Maybe.

- Try taking the error message at face value.

Link to comment
Share on other sites

But, I'm already connected? Why would this happen?

 

I'm sure if it were attempting to connect when already connected, it would tell me so. Likewise if it were a syntax error. Any ideas?

Respectively:

- I don't know, are you?

- Because the username/password combination isn't a valid login to MySQL.

- Probably not, actually. But it wouldn't be a problem.

- Maybe.

- Try taking the error message at face value.

I'm sorry, this really has my head spinning... The following code works, successfully connecting to the database:

if($_POST['passwd'] == $_POST['passwd2']) {
$test = db_query("SELECT * FROM INVENTORY WHERE INV_ID = 1");
echo $test[0]['NAME'];
    $passwd = $_POST['passwd'];

However if I change the code ever so slightly, it doesn't work, giving me the connection error:

if($_POST['passwd'] == $_POST['passwd2']) {
    $passwd = $_POST['passwd'];
$test = db_query("SELECT * FROM INVENTORY WHERE INV_ID = 1");
echo $test[0]['NAME'];

I don't get it...

 

EDIT: oh my god... I just realized I'm resetting the $passwd variable... Same variable I  previously set for the database connection. DUH.. Thanks for the help...

Link to comment
Share on other sites

It's likely that your db_query() function was written poorly and it expects the main program variable $passwd to hold your database connection password.

 

Posting the code for the db_query() function would be the quickest way of getting help.

 

Edit to your edit (and Dan's post): Please, please don't ever use the global keyword, ever. It causes the kind of problem you were having and surprisingly WASTES TIME both in debugging problems and in writing code because suddenly you must remember what variables you are using inside of functions. Functions are supposed to make writing code EASIER and FASTER, not take more time trying to remember what you used where.  After you write a function and test it, you should not need to remember what it is doing, just what parameters it takes, what function it performs, and what result it returns.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.