Monday, June 29, 2009
Back and working with PHP/MySQL and some Javascript
Sunday, April 29, 2007
Testing MySQL: Installing MySQL, configuring php.ini and removing deprecated tags.
PHP Fatal error: Call to undefined function mysql_connect()
I added a couple extensions in php.ini and just now found a new error message appeared.
PHP Warning: PHP Startup: Unable to load dynamic library './php_mysql.dll'
- The specified module could not be found.\r\n in Unknown on line 0
It was not looking in the right directory, rather I never specified where to look. Now I have tried setting the extension directory with extension_dir = "c:\php\ext" in php.ini, I have received a new error message. (I'm getting somewhere!)
PHP Fatal error: Call to undefined function mysql_create_db() in
C:\\myserver\\test_mysql.php on line 33
I have a feeling I'll be doing a lot of php.ini configuring. After searching for the previous error in google I came across a list of emails in the archives of Neohapsis.com where someone mentioned that mysql_create_db() is deprecated. So much for using older tutorials. I searched for mysql_create-db() deprecated on Google and came across a comment on the manual that says mysql_query() should be used instead.
I went back into my test file and changed the two instances of mysql_create_db to mysql_query and finally something appears on the page. Unfortunately the variables are not appearing to be saved. Oh error looooog!,
PHP Warning: mysql_fetch_array(): supplied argument is not a valid MySQL
result resource in C:\\myserver\\test_mysql.php on line 66
Fetch doesn't have anything to fetch so it is reporting an error. I think I'll find someone elses file to test MySQL with (ignores the little voice saying "Make one yourself you lazy oaf")
Testing MySQL
<?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();
?>
Saturday, April 28, 2007
Installing MySQL
After it goes through a little song and dance preparing installation files and preparing to install it shows me a window, MySQL Server 5.0 - Setup Wizard
I click next> select custom (because I want to install in in c:/mysql instead of the default directory in Program Files)> click next> click change directory> enter c:/mysql under Folder name: > Click OK> click Next> click Install
After installation "Configure the MySQL Server Now" should be checked and I'll just click Finish and move on.
Hooray My MySQL is downloaded!
Before I even attempt installing it though I have to check the integrity of the file. To do this I am using md5.exe a program created by developed by Ron Rivest of the MIT Laboratory for Computer Science and RSA Data Security, Inc.
Md5 can validate the integrity of a downloaded file because the algorithm creates a different signature for two different files. If even one byte is changed in a file it will give a different signature. MySQL shows the signature id under the download link like so.

Hmm, I think I'll be uploading my pictures somewhere other than blogger. Is that blurred? Anyway, the second one is is what I downloaded. Below 5.037, 36.7M, etc there is a line that says MD5: b909c16... This is the line that md5.exe must return to show you have a file of pure integrity! (If only we could do the same for politicians, ahem) So the next step after downloading MySQL is to download MD5: Command Line Digest Utility.
After it has been downloaded it has to be unzipped (I'm assuming it was downloaded as a zip and not a tar. I use zips, never used tar). I simply unzipped it into c:/md5. I then placed the downloaded mysql-yada-yada-yada.zip in the c:/md5 folder along with md5.exe. Next we go to the command line.
In Microsoft XP, where they officially killed DOS, command prompt is used. It can be opened by following: Start>All Programs>Accessories>Command Prompt
If you've never used it don't worry it is actually quite simple (I used to have to use it every day because all I had was DOS long ago :-(!)

I started in the md5 directory but I wanted to show how change directory (cd\) works.
So I entered cd\ to return to c:\
Next I entered cd\md5 to change the directory to c:\md5
Then I entered md5 (it runs md5.exe) and entered the file name I want to check after it.
It returns a line, the signature for the downloaded file. I compare that line to the line on mysql's website and (no ellipse this time) they match!
On to installation!