Showing posts with label WebThang. Show all posts
Showing posts with label WebThang. Show all posts

Sunday, April 29, 2007

Testing MySQL


I decided to run a test on MySQL to see if it has been configured properly.




WebThang's tutorial has a test file to use on the end of its MySQL installation tutorial that should work fine (the only change I made was changing shorthand error):




Cut and Paste the following code into 'notepad' and save it as 'c:\web\test_mysql.php'

<?php
/************************************************************
this script runs only once, it then drops the database before
mysql connection is closed.
************************************************************/


/***************************************************
string values passed on to the following 5 variables.
two of each are assigned to 'ice' and the rest three
tag along into 'mysql_connect'
***************************************************/
$iceCreamOne = "Vanilla"; // Type One Ice Cream
$iceCreamTwo = "Cookie Dough Ice Cream"; // Type Two Ice Cream
$host = "localhost"; // hostname...in our case localhost
$username = "root"; // root is our default
$password = "ranginyoka31"; // your mysql password please


//open connection to the MySQL database server.
$connection = mysql_connect($host,$username,$password);
//if connection fails, display the error involved
if ($connection == false){
echo mysql_errno().": ".mysql_error()."<BR>";
//echo("Your username or password is not correct.");
exit;
}


/************************************************
After supper we will have two kinds of desserts
create the database then select it. Two functions
called mysql_create_db() & mysql_select_db()
if statements to check success of create & select
************************************************/
$create_success = mysql_create_db("aftersupper");
if($create_success)echo("<b><font color=\"blue\">create database: success!</font></b><br>");
$select_success = mysql_select_db("aftersupper");
if($select_success)echo("<b><font color=\"blue\">selected the created database: success!</font></b>");


/*************************************************************
your choice for 2 desserts
for me I like vanilla[iceCreamOne] & cookie dough[iceCreamTwo]
*************************************************************/
mysql_query("CREATE TABLE desserts(iceCreamOne VARCHAR(25),
iceCreamTwo VARCHAR(25))");


/**********************************************************
i put my two favorite ice cream types into table desserts: vanilla & cookie dough
remember im using variables that have been assigned with strings up there ^^^.
*********************************************************/
mysql_query ("INSERT INTO desserts (iceCreamOne, iceCreamTwo) VALUES
('$iceCreamOne', '$iceCreamTwo')");


/********************************************************
as long as there is information in the table keep printing.
i have two values in table 'desserts', both rows are passed to variable 'result'
**********************************************************/
$result = mysql_query ("SELECT * FROM desserts");


//checking to see that select was successfull
//if ($result){echo "<h2>Successfully selected from table desserts!</h2>\n";}


//assign the number of rows from variable $result to $numOfRows
//$numOfRows = mysql_num_rows ($result);


//for ($i = 0; $i < $numOfRows; $i++)
//{
$row = mysql_fetch_array($result);
print ("<h3>My 2 most favorite Ice Cream are:</h3><br>\n");
print($row["iceCreamOne"]." and ");
print($row["iceCreamTwo"]. "<br>");
// }


//Database gets dropped. You can comment the line below if you wish to keep the database
mysql_query("DROP DATABASE aftersupper");


//close the connection to the db with the particular user :: $username
mysql_close();
?>





So I tried to run the program and ended up getting a blank page. I looked at the MainFrame.err file and didn't see anything peculiar. I then looked at Apache's access log and found nothing.




The problem appeared in Apache's error log:


[Sun Apr 29 11:30:43 2007] [error] [client ###.#.#.#] PHP Fatal error: Call to undefined function mysql_connect() in C:\\myserver\\test_mysql.php on line 19




I searched for "PHP Fatal error: Call to undefined function mysql_connect()" on Google and found this thread on MySQL. At the top of the thread the first poster has the same problem as many others do. At the end of the thread the poster says the solution is located in the second to last post (a lot of pointing going on). That thread finally leads me to siteinaweek.com which finally makes me say "Oh, duh".




I forgot to add extensions for MySQL in php.ini


I just removed the semi-colin before "extension=php_mysql.dll" like so
and removed it before "extension=php_mysqli.dll" as well.
I stopped and restarted the Apache server before testing test_mysql.php and again received a blank page. I'll work on this some more later.

Saturday, April 28, 2007

Installing MySQL: Configuration

After installing MySQL I have to configure it. I have looked at both the MySQL Server Configuration Wizard Documentation and WebThang.co.uk's Tutorial for installing MySQL (I needed something a little less technical heavy to get me started and they've done a good job on tutorials).

When the window
this window
comes up I follow this sequence:
Next>Select Standard Configuration>Next>Next (Left Install As Windows Service and Launch the MySQL Server automatically on by default)>Entered my root password>Next>Execute>Finish

Now I test to see if it has been configured properly in good ol' Command Prompt
(Start>Programs>Accessories>Command Prompt)

I type in "c:/mysql/bin/mysql test" without the quotation marks on my prompt and...

then receive the following error message:
ERROR 1045 <28000>: Access denied for user 'ODBC'@'localhost'

I have no idea what this means. Going back to MySQL's "2.4.8.9. Starting the Server for the First Time" I see the suggestion to run mysqld.exe from the bin folder.

So I type in "c:/mysql/bin/mysqld. Instead of seeing a bunch of lines appear telling me something is being processed it quickly readies itself for the next prompt *blink blink*

Realizing my server is off I start Apache and attempt to run mysqld again. This time it waits for 5 or 6 seconds then readies itself for the next prompt without giving me any fanfare. It's supposed to give me fanfare. After reading 2.4.8.9 again I see that it will not show the lines I was expecting to see if I do not type "
--console" at the end of the command line. That last part was hidden in section navigation on the documentation page. Maybe they should make it a little more visible.

So I look in /mysql/data/MainFrame.err (it's where all the error messages and, if you don't enter --console, diagnostic messages go. Everything I expected to see in command prompt was there.

I logged into my account by changing the directory to c:/mysql/bin/
then entering mysql -u root password ****** in Command Prompt.

mysql - Mysql.exe, the program I'm opening
"-u" - means I'm about to enter the username
root - the ultimate grandmaster username upon installation
password - I entered a password on set up so I have to put password here if I'm going to access anything
****** - I can never tell (said in the voice of Jim Carrey's Riddler)

So I've got everything configured. Now...now...what am I going to do with all this stuff?