在Win2000下用PHP和JSP連接MySQL

在Win2000下用PHP和JSP連接MySQL

--------------------------------------------------------------------------------
  
 
一、前言
在閱讀本文檔之前,你的Win2000下應該已經安裝好了Apache、JDK、Tomcat、PHP、MySQL。
在本文檔中,我們並不準備對PHP、MySQL、JSP作過多的解釋,我們將假定你已經大致掌握了PHP、MySQL、JSP。我們僅僅是探討在Win2000下,使用PHP和JSP連接MySQL的方法。
二、MySQL的前期準備
在我們之前安裝的MySQL中,我們僅僅是使用了系統初始的root用戶。在本文中,我們不準備繼續使用root用戶,雖然我們是在一個試驗環境下工作,但是養成一個良好的習慣是至關重要的,因爲我們將來面對的將可能是一個完全開放的Internet。和在絕大多數情況下一樣,MySQL中對root用戶的濫用也有可能導致MySQL的崩潰。
MySQL安裝後的初始情況有點怪怪的,要正確地增加用戶並設置用戶權限,我們有必要對mysql庫中的表User及DB進行清理。
首先,在命令行方式下進入c:/mysql/bin目錄,直接輸入mysql,你會進入MySQL的客戶端程序MYSQL(在下面,我們用MYSQL特指MySQL的客戶端程序,而在其他場合,我們將會使用MySQL)。在“mysql>”提示符後輸入:
  show databases;
你會看到初始狀態下,MySQL下有兩個數據庫:mysql和test,test庫反正對我們也沒什麼用,留着反而會混淆視聽,所以我們不妨將其刪除:
  drop database test;
有關用戶及其權限保存在mysql數據庫中,其中關鍵是db表和user表,現在,我們可以先將db表清空:
  use mysql;
delete from db;
然後我們對user庫進行清理,並進行刷新:
  delete from user where user='' or host='localhost';
flush privileges;
現在,用quit退出MYSQL。
  現在,你將不能直接輸入mysql進入MYSQL了(那種情況實際上是不需要用戶認證進入了MYSQL)。你只能輸入mysql -u root -p。
  如果之前你爲root用戶設置了密碼,這時會提示你輸入密碼,如果你還沒有設置,直接按回車鍵就可以進入MYSQL了。
  沒有口令的root用戶的存在是一個很恐怖的情況,你最好先退出客戶端程序用我們在MySQL在Win2000下的安裝中講述的方法爲root設置一個口令後再進入MYSQL。
  我們建立一個用於使用的新的數據庫:
  create database my_test;
在這個庫中建立一個數據表:
  use my_test;
create table my_test_table (test_column char(20) not null);
在這個表中增加一行:
  insert my_test_table values ('Hello,I'm MySQL!');
現在我們用grant命令建立一個新的用戶yzysy,該用戶只對my_test這個庫有SELECT、UPDATE、INSERT以及DELETE的權限。該用戶的密碼也是yzysy:
  grant SELECT,UPDATE,INSERT,DELETE on my_test.* to yzysy identified by 'yzysy';
有關grant命令的詳細說明請參看MySQL用戶手冊。

三、PHP連接MySQL
PHP連接MySQL非常簡單,我們不需要作任何設置。
  在Apache安裝目錄的htdocs目錄下建立一個新文件MySQL.php:
<HTML>
<HEAD>
<TITLE>
PHP連接MySQL!
</TITLE>
</HEAD>
<BODY>
<?
$dbcnx=mysql_connect("localhost","yzysy","yzysy");
mysql_select_db("my_test");
$result=mysql_query("select * from my_test_table",$dbcnx);
while ($row=mysql_fetch_array($result))
echo ("<P><h1>".$row["test_column"]."</h1></P>");
?>
</BODY>
</HTML>
  其中,mysql_connect()用來連接數據庫服務器,mysql_select_db()用來選擇工作的數據庫,mysql_query()用來執行SQL查詢,mysql_fetch_array()用來獲得select的結果集。
  現在,打開你的瀏覽器,在地址欄中輸入http://localhost/MySQL.php,你應該能看到黑體的“Hello,I'm MySQL!”。

四、JSP連接MySQL
  JSP連接MySQL要稍微複雜一點。
  首先你必須從http://www.mysql.com/Downloads/Contrib/mm.mysql.jdbc-1.2c.tar.gz下載mm.mysql.jdbc-1.2c.tar.gz,然後將其解壓到本地硬盤的一個目錄下(我們使用的是c:/mm.mysql.jdbc-1.2c。
  然後在CLASSPATH系統變量的最後添加c:/mm.mysql.jdbc-1.2c;(此處/應該是反斜槓)
創建一個JavaBean,名爲DBconn.java,在Tomcat的/webapps/examples/WEB-INF/classes下建立一個mysqltest目錄,將該文件保存在這個目錄中,DBconn.java用來封裝與數據庫鏈接的操作。DBconn.java的內容如下:
package Mysqltest;
import java.sql.*;
public class DBconn
{String DBDriver="org.gjt.mm.mysql.Driver";
String ConnStr="jdbc:mysql://localhost/my_test";
String MyUser="yzysy";
String MyPassword="yzysy";
Connection conn = null;
ResultSet rs = null;
public DBconn()
{try
{Class.forName(DBDriver);
}
catch(java.lang.ClassNotFoundException e)
{System.err.println("DBconn (): " + e.getMessage());
}
}
public ResultSet executeQuery(String sql)
{rs = null;
try
{conn = DriverManager.getConnection(ConnStr,MyUser,MyPassword);
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex)
{System.err.println("aq.executeQuery:"+ex.getMessage());
}
return rs;
}
}
  我們注意到在這段程序是隻有
  String DBDriver="org.gjt.mm.mysql.Driver";
 String ConnStr="jdbc:mysql://localhost/my_test";
  帶有MySQL的特色,其餘的程序與其他JDBC應用並沒有什麼不同。
利用JDK的Javac命令編譯DBconn.java形成相應的class文件。
在Tomcat的/webapps/examples/jsp目錄下建立Mysqltest.jsp文件。其內容如下:
<%@ page contentType="text/html; charset=gb2312" %>
<html>
<head>
  <title>JSP連接MySQL!</title>
 </head>
 <body>
  <%@ page language="java" import="java.sql.*" %>
<jsp:useBean id="DBconn1" scope="page" class="Mysqltest.DBconn" />
  <%
ResultSet RS = DBconn1.executeQuery
("SELECT * FROM my_test_table");
while (RS.next()) {
out.print("<h1>" + RS.getString("test_column")
+"</h1>");
}
RS.close();
%>
 </body >
</html >
在這兒,你已經看不到任何MySQL的痕跡了。
現在在瀏覽器的地址欄中輸入http://localhost/examples/jsp/Mysqltest.jsp,你應該可以看到黑體的“Hello,I'm MySQL!”。

五、結語
現在,你的Win2000下已經成功地搭建了一個零成本的Web服務器。不過,我個人以爲,在Win2000下只能作爲一個開發環境,真正要投入使用,還有使用linux能得到更多的性能和安全上的保證
 

發佈了7 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章