WinXP Pro x86+MySQL 5.0.19+phpMyAdmin 2.8.0.2+Apache2 2.0.55+PHP 5.1.2
前言
目標
原因
示範平台
伺服器軟體來源取得
MySQL5
phpMyAdmin
Apache2
PHP5
注意
Apache2環境架設
MySQL5架設
- 下載install版本,不要下載UnZip版本
- 下載完成後解壓縮
- 執行Setup.exe
- 白痴安裝法, 接用預設值
- 當安裝到Please select default character set.,請點選Best Support For Multilingualism
- 當安裝到Please set the Windows options,多勾選Include Bin Directory in Windows PATH
- 當安裝到Please set the security options,於New root password以及Confirm欄位輸入你自訂的密碼並牢記
若需要自其他電腦使用本機MySQL,請開啟防火牆3306埠
PHP5環境架設
下載Zip檔,不要下載install的版本
我將Zip檔解開後的存放到C:\php5,php.exe的位置位於C:\php5\php.exe
將php.ini-recommended複製到安裝windows的資料夾下,以我複製後位置是C:\WINDOWS\php.ini-recommended
將php.ini-recommended重新命名為php.ini
修改php.ini
register_globals = Off
關閉此設定可以提升效能,但程式相容性低,取得標準變數一定要用完整格式,例如$post['UserPost']一定要使用$_POST['UserPost']
extension_dir = "c:/php5/ext/"
我解壓縮到C:\,固設定如上
extension=php_mbstring.dll
extension=php_mysql.dll
將前面的;拿掉- 將php.ini存檔
複製php5ts.dll
將c:\php5\php5ts.dll複製到安裝windows的資料夾之下的system32資料夾下,以我複製後位置是C:\WINDOWS\system32\php5ts.dll
修改Apache2的httpd.conf
DirectoryIndex index.htm index.html index.html.var index.php index.phtml
LoadModule php5_module "C:/php5/php5apache2.dll"
<IfModule mod_mime.c>
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
</IfModule>
新增一個純文字文件,內容輸入<?php phpinfo();?>存檔,並且重新命名為index.php,放到Apache2的主目錄(預設htdocs)
使用瀏覽器瀏覽http://localhost:80/index.php ,看是否有php的環境變數輸出,有一堆紫色的畫面寫php安怎安怎的就是成功了
phpMyAdmin安裝
- 在Servers按下Add按鈕
- Authentication type
- 選擇cookie
User for config auth
將已輸入的值刪除,保持淨空
phpMyAdmin control user
輸入最高權限的帳號,預設為root
phpMyAdmin control user password
輸入最高權限帳號的密碼 (安裝MySQL5時所牢記的密碼)
phpMyAdmin database for advanced features
輸入phpmyadmin- 按下Add按鈕
- 在Features按下Charsets按鈕
- Allow charset conversion
勾選此項
Default charset
選擇utf-8
Recoding engine
選擇Auto- 按下Update按鈕
- Allow charset conversion
- 在Configuration按下Save按鈕
- 將Setup.php產生的config.inc.php複製到phpMyAdmin的根目錄下
舉例:C:\Apache2\htdocs\phpMyAdmin\config\config.inc.php
複製到C:\Apache2\htdocs\phpMyAdmin\config.inc.php
將config資料夾整個刪除
舉例:刪除C:\Apache2\htdocs\phpMyAdmin\config
建立MySQL5關聯資料存放資料庫配合phpMyAdmin
- 登入phpMyAdmin後的主目錄
- 右方視窗新增資料庫輸入:phpmyadmin
- 右方視窗點選建立
- 右方視窗點選上方SQL
- 複製以下粗體字的SQL指令
## 資料表格式: `PMA_bookmark`#CREATE TABLE `PMA_bookmark` (`id` int(11) NOT NULL auto_increment,`dbase` varchar(255) NOT NULL default '',`user` varchar(255) NOT NULL default '',`label` varchar(255) NOT NULL default '',`query` text NOT NULL,PRIMARY KEY (`id`)) TYPE=MyISAM COMMENT='Bookmarks' AUTO_INCREMENT=1 ;# --------------------------------------------------------## 資料表格式: `PMA_column_info`#CREATE TABLE `PMA_column_info` (`id` int(5) unsigned NOT NULL auto_increment,`db_name` varchar(64) NOT NULL default '',`table_name` varchar(64) NOT NULL default '',`column_name` varchar(64) NOT NULL default '',`comment` varchar(255) NOT NULL default '',`mimetype` varchar(255) NOT NULL default '',`transformation` varchar(255) NOT NULL default '',`transformation_options` varchar(255) NOT NULL default '',PRIMARY KEY (`id`),UNIQUE KEY `db_name` (`db_name`,`table_name`,`column_name`)) TYPE=MyISAM COMMENT='Comments for Columns' AUTO_INCREMENT=24 ;# --------------------------------------------------------## 資料表格式: `PMA_history`#CREATE TABLE `PMA_history` (`id` bigint(20) unsigned NOT NULL auto_increment,`username` varchar(64) NOT NULL default '',`db` varchar(64) NOT NULL default '',`table` varchar(64) NOT NULL default '',`timevalue` timestamp(14) NOT NULL,`sqlquery` text NOT NULL,PRIMARY KEY (`id`),KEY `username` (`username`,`db`,`table`,`timevalue`)) TYPE=MyISAM COMMENT='SQL history' AUTO_INCREMENT=1 ;# --------------------------------------------------------## 資料表格式: `PMA_pdf_pages`#CREATE TABLE `PMA_pdf_pages` (`db_name` varchar(64) NOT NULL default '',`page_nr` int(10) unsigned NOT NULL auto_increment,`page_descr` varchar(50) NOT NULL default '',PRIMARY KEY (`page_nr`),KEY `db_name` (`db_name`)) TYPE=MyISAM COMMENT='PDF Relationpages for PMA' AUTO_INCREMENT=3 ;# --------------------------------------------------------## 資料表格式: `PMA_relation`#CREATE TABLE `PMA_relation` (`master_db` varchar(64) NOT NULL default '',`master_table` varchar(64) NOT NULL default '',`master_field` varchar(64) NOT NULL default '',`foreign_db` varchar(64) NOT NULL default '',`foreign_table` varchar(64) NOT NULL default '',`foreign_field` varchar(64) NOT NULL default '',PRIMARY KEY (`master_db`,`master_table`,`master_field`),KEY `foreign_field` (`foreign_db`,`foreign_table`)) TYPE=MyISAM COMMENT='Relation table';# --------------------------------------------------------## 資料表格式: `PMA_table_coords`#CREATE TABLE `PMA_table_coords` (`db_name` varchar(64) NOT NULL default '',`table_name` varchar(64) NOT NULL default '',`pdf_page_number` int(11) NOT NULL default '0',`x` float unsigned NOT NULL default '0',`y` float unsigned NOT NULL default '0',PRIMARY KEY (`db_name`,`table_name`,`pdf_page_number`)) TYPE=MyISAM COMMENT='Table coordinates for phpMyAdmin PDF output';# --------------------------------------------------------## 資料表格式: `PMA_table_info`#CREATE TABLE `PMA_table_info` (`db_name` varchar(64) NOT NULL default '',`table_name` varchar(64) NOT NULL default '',`display_field` varchar(64) NOT NULL default '',PRIMARY KEY (`db_name`,`table_name`)) TYPE=MyISAM COMMENT='Table information for phpMyAdmin';
- 右方視窗輸入SQL指令的區域將已複製的SQL指令貼上
- 右方視窗點選執行按鈕
PHP5程式實作
新增一個純文字文件,更名為test.php
將以下粗體字程式碼複製貼入test.php內
<?phpmb_internal_encoding("Big5");mb_http_output('UTF-8');ob_start('mb_output_handler');header('Content-Type: text/html; charset=UTF-8');?><html><head><title>Big5編碼,使用UTF-8展示</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body><form method=post>更改Admin姓名:<input type=text name="UserName" value=""><input type=submit></form><?php/*-- 資料表新增SQL開始-- 資料表請於test資料庫,在SQL語法執行處貼上並執行-- phpMyAdmin SQL Dump-- version 2.8.0.2-- http://www.phpmyadmin.net-- -- 主機: localhost-- 建立日期: Mar 31, 2006, 01:56 AM-- 伺服器版本: 5.0.19-- PHP 版本: 4.4.1-- -- 資料庫: `test`-- -- ---------------------------------------------------------- -- 資料表格式: `user_value`-- CREATE TABLE `user_value` ( `id` varchar(10) NOT NULL, `name` varchar(20) NOT NULL, PRIMARY KEY (`id`)) TYPE=InnoDB;-- -- RELATIONS FOR TABLE `user_value`:-- `id`-- `users` -> `id`-- -- -- 列出以下資料庫的數據: `user_value`-- INSERT INTO `user_value` (`id`, `name`) VALUES ('Admin', 'Administrstor');-- ---------------------------------------------------------- -- 資料表格式: `users`-- CREATE TABLE `users` ( `id` varchar(10) NOT NULL, `password` varchar(20) NOT NULL, PRIMARY KEY (`id`)) TYPE=InnoDB;-- -- 列出以下資料庫的數據: `users`-- INSERT INTO `users` (`id`, `password`) VALUES ('Admin', '123');-- -- 備份資料表限制-- -- -- 資料表限制 `user_value`-- ALTER TABLE `user_value` ADD CONSTRAINT `user_value_ibfk_1` FOREIGN KEY (`id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;-- 資料表SQL完畢*//* mysql的連線預設字元集若是按照我的設定已經設定為utf-8 所以請不要另外設定 就算強制設定 也是會出錯 所有輸出變數資料都要使用 mb_convert_encoding($str, "Big5","UTF-8")即可轉碼*/$link_id=mysql_connect("輸入MySQL的主機位置","最高權限管理員帳號","最高權限管理員密碼") or die('Could not connect: ' . mysql_error());;mysql_select_db("test") or die('Could not select database');if(isset($_POST['UserName'])){ $sql = "UPDATE `user_value` SET `name` = '".$_POST['UserName']."' WHERE `id`= 'Admin';" or die('Query failed: ' . mysql_error()); if(mysql_query($sql,$link_id)){ echo "Admin姓名已更新為:".mb_convert_encoding($_POST['UserName'], "Big5","UTF-8")."<br>"; } else{ echo "Admin姓名無法更新為:".mb_convert_encoding($_POST['UserName'], "Big5","UTF-8")."<br>"; }}$sql = 'SELECT `users` . `id` , `user_value` . `name` FROM `users` INNER JOIN ( `user_value` ) ON `users` . `id` = `user_value` . `id`; ' or die('Query failed: ' . mysql_error());$result=mysql_query($sql,$link_id);//輸出資料庫內容開始echo "<table border=1><tr><td>ID</td><td>Name</td></tr>\n";while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { echo "<tr>"; foreach ($line as $col_value) { echo "<td>". mb_convert_encoding($col_value, "Big5","UTF-8")."</td>"; } echo "</tr>\n";}echo "</table>\n";//輸出資料庫內容結束//釋放資料庫記憶體mysql_free_result($result);//關閉資料庫連線mysql_close($link);?><pre>Big5內文測試話說從前從前~~~有位園藝家..擅長種植出世上最翠綠的草地~~進而得到國王的寵愛~~並封他為''農務大臣''~~後來農務大臣死後豐功偉績傳到了天堂~~上帝便昭換農務大臣到天堂幫它種植草地~~不過農務大臣上天堂後卻再也種不出綠油油的草地了~~為啥為啥為啥???因為............... 仙草是黑的....................囧RZ</pre></body></html>
修改mysql_connect("MySQL主機位置","最高權限管理員帳號","最高權限管理員密碼")
儲存test.php
將test.php內提到測試用的資料表建好
將test.php放在Apache2的主目錄下(預設htdocs),我的位置是C:\Apache2\htdocs\test.php
使用瀏覽器瀏覽http://localhost:80/test.php
按右鍵檢視網頁編碼是否為UTF-8
在輸入文字方塊內輸入一些中文例如:許功蓋並送出資料測試
送出資料後中文顯示正常者,恭喜你成功了!
送出資料後中文顯示錯誤者,請你自己Debug
若是我文章有寫錯請指正,歡迎您的討論
留言列表