bluethundr Posted November 5, 2009 Share Posted November 5, 2009 This script is trying to access a MySQL database but it keeps failing at line 82, and I can't find the problem with the code. This is the error I get: Warning: mysql_select_db() expects parameter 2 to be resource, null given in /Library/WebServer/Documents/example.6-14.php on line 82 Error 0 : and this is the line that keeps producing the error: if (!mysql_select_db($databaseName, $connection)) showerror(); <!DOCTYPE HTML PUBLIC "-//W3C// DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Exploring Wines in a Region</title> </head> <body bgcolor="white"> <?php require 'db.inc'; // Show all wines in a region in a <table> function displayWinesList($connection, $query, $regionName) { // Run the query on the server if (!($result = @ mysql_query ($query, $connection))) showerror(); // Find out how many rows are available $rowsFound = @ mysql_num_rows($result); // If the query has results if ($rowsFound > 0) { // ... print out a header print "Wines of $regionName<br>"; // and start a <table> print "\n<table>\n<tr>" . "\n\t<th>Wine ID</th>" . "\n\t<th>Wine Name</th>" . "\n\t<th>Year</th>" . "\n\t<th>Winery</th>" . "\n\t<th>Description</th>\n</tr>" ; // Fetch each of the query rows while ($row = @ mysql_fetch_array($result)) { // Print one row of results print "\n<tr>\n\t<td>{$row["wine_id"]}</td>" . "\n\t<td>{$row["wine_name"]}</td>" . "\n\t<td>{$row["year"]}</td>" . "\n\t<td>{$row["winery_name"]}</td>" . "\n\t<td>{$row["description"]}<td>\n</tr>"; } // end while loop body // Finish the table print "\n</table>"; } // end if $rowsFound in body // Report how many rows were found print "{$rowsFound} records found matching your criteria</br>"; } // end of function // Connect to the MySQL server if (!($connetion = @ mysql_connect($hostName, $username, $password))) die("Could not connect"); // Secure the user parameter $regionName $regionName = mysqlclean($_GET, "regionName", 30, $connection); if (!mysql_select_db($databaseName, $connection)) showerror(); // Start a query ... $query = "SELECT wine_id, wine_name, description, year, winery_name FROM winery, region, wine WHERE winery.region_id = region.region_id AND wine.winery_id = winery.winery_id"; // ... then, if the user has specified a region, add the regionName // as an AND clause if (isset($regionName) && $regionName !="All") $query .= " AND region_name = \"{regionName}\""; // ... and then complete the query $query .= " ORDER BY wine_name "; // run the query and show the results displayWinesList($connection, $query, $regionName); ?> </body> </html> and this is the db.inc script, there's not much to it <?php // This file is the same as example 6-7, but includes mysqlclean() and shellclean() $hostName = "localhost"; $databaseName = "winestore"; $username = "like-i'd-tell-you"; $password = "shhhh"; function showerror() { die("Error " . mysql_errno() . " : " . mysql_error()); } function mysqlclean($array, $index, $maxlength, $connection) { if (isset($array["{$index}"])) { $input = substr($array["{$index}"], 0, $maxlength); $input = mysql_real_escape_string($input, $connection); return ($input); } return NULL; } function shellclean($array, $index, $maxlength) { if (isset($array["{$index}"])) { $input = substr($array["{$index}"], 0, $maxlength); $input = EscapeShellArg($input); return ($input); } return NULL; } ?> Thanks for your help Link to comment https://forums.phpfreaks.com/topic/180482-php-script-not-accessing-mysql/ Share on other sites More sharing options...
mpharo Posted November 5, 2009 Share Posted November 5, 2009 I do not see the $connection variable anywhere in the scripts... you will need to use the mysql_connect() function to variable $connection... Link to comment https://forums.phpfreaks.com/topic/180482-php-script-not-accessing-mysql/#findComment-952131 Share on other sites More sharing options...
PFMaBiSmAd Posted November 5, 2009 Share Posted November 5, 2009 $connetion ain't spelled right in the line where you are assigning a value to it. You need to be developing and debugging php code in a system with error_reporting set to E_ALL and display_errors set to ON in your master php.ini to get php to help you. There would have been an undefined error at the first occurrence of $connection (spelled correctly) that would have alerted you to the fact that you had not assigned a value to a variable by that name and you could have backtracked to the line that is supposed to be assigning that value to discover the spelling error. Link to comment https://forums.phpfreaks.com/topic/180482-php-script-not-accessing-mysql/#findComment-952134 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.