开发者

Intermittent "No Database Selected" in PHP/MySQL?

开发者 https://www.devze.com 2022-12-29 04:20 出处:网络
Have a PHP/MySQL form with a dropdown box containing a list of 350 names.When any random name is selected, sometimes it works & displays info about that name from the database, and sometimes the f

Have a PHP/MySQL form with a dropdown box containing a list of 350 names. When any random name is selected, sometimes it works & displays info about that name from the database, and sometimes the form gives the error "No Database Selected".

Here's what I've tried, pretty much grasping at straws as I'm not a programmer:

  • Increasing max_connections in /etc/my.cnf from 200 to 2000 (even though only 4-5 connections are made and it's a lightly used server)
  • Changing mysql_pconnect to mysql_connect
  • Adding the word true to this connection string:

    $mysql = mysql_pconnect($hostname_mysql, $username_mysql, $password_mysql, true) or trigger_error(mysql_error(),E_USER_ERROR);

  • Changing the word require_once to require on th开发者_开发知识库is line:

    [?php require('/home/user/Connections/mysql.php'); ?]

  • Enabling MySQL & PHP query & error logging. (no errors logged)

Here is the code: [removed old bad code]

Update: Working answer from Rob Apodaca below.


This line: mysql_select_db($database_mysql, $mysql); appears more than once in your provided script. Since the value of $database_mysql does not appear to change, I would remove all of the instances of that line and place it just after the mysql_pconnect/mysql_connect line.


My issue was with a database connection object (B) that was serialized within another serialized object (A). Sometimes, depending on what had happened prior to object A being unserialized, object B would perform a mysql_select_db() call with a null database name as it had been lost.

We littered our code with some echo's of the result of a MySQL query "SELECT DATABASE()" until we found where the intermittent loss of the default database was occurring. Hope this helps!

0

精彩评论

暂无评论...
验证码 换一张
取 消