locoboy locoboy - 13 days ago 5
MySQL Question

Connecting to mysql using php

Here is my following tutorial code from "Learning PHP MYSQL and Javascript" by OReilly.

<?php
//require_once = 'login.php';

$db_database = 'publications';
$db_hostname = 'localhost:8888';
$db_username = 'root';
$db_password = 'root';


$db_server = mysql_connect($db_hostname, $db_username, $db_password);
if(!$db_server) die("Unable to connect to MYSQL: ". mysql_error());

mysql_select_db($db_database)
or die("Unable to connect to database: " . mysql_error());

$query = "SELECT * FROM classics";
$result = $mysql_query($query);

if(!$result) die ("Could not query: " . mysql_error());
$rows = mysql_num_rows($result);

for($j = 0; $j < $rows; ++$j)
{
echo 'Author: ' . mysql_result($result, $j, 'author') . '</br>';
echo 'Title: ' . mysql_result($result, $j, 'title'). '</br>';
echo 'ISBN: '.mysql_result($result, $j, 'isbn').'</br>';
}

?>


However, I'm getting an error when trying to connect. The browser says it's a 500 error (which really isn't that helpful). When I take out the lines
$db_username = 'root'; $db_password = 'root';
I get another error saying: "Unable to connect to database: Access denied for user ''@'localhost' to database 'publications'".

Can anyone help diagnose the problem?

Thanks!

Answer

Change this

$result = $mysql_query($query);

to this

$result = mysql_query($query);

Function name is mysql_query not $mysql_query, $ is used in variable names.

Also, instead of trying to "see" your code immediately in a browser window you could use a PHP command line instead. If your file is called foo.php you coudl do:

>> php foo.php
PHP Notice:  Undefined variable: mysql_query in /var/www/foo.php on line 17
PHP Fatal error:  Function name must be a string in /var/www/foo.php on line 17

As you see, the error message is pretty clear. Because of using $mysql_query it thinks that mysql_query is a variable, but such a variable is not defined somewhere.

Comments