กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
1,848 33
URL.หัวข้อ /
URL
php กับ MySQL
หลังจากจดๆ จ้องๆ อยู่ 2-3 วันช่วงวันสงกรานต์ ที่จะลองเปลี่ยนจาก ASP กับ MS Access ไปเป็น php กับ MySQL ในการทำเว็บแบบ Database-Driven วันนี้ก็เลยได้ฤกษ์ เพิ่งจะไป d/l php และได้ Set ค่าต่างๆ และลองสร้างเว็บง่ายๆ และได้ Run ผ่าน ก็เลยยังตื่นเต้นไม่หาย
หลายท่านที่เคยเล่น php มานานคงจะว่าผมเชย แต่ผมรักเดียวใจเดียวกับ ASP และ Access มาตลอด เพราะผมคิดว่าน่าจะยึดโปรแกรมในกลุ่มใดกลุ่มหนึ่งให้ลึกซึ่งไปเลย แต่การจับกุมโปรแกรมเถื่อนในปีนี้ ทำให้ผมต้องเริ่มที่จะในอ่อนหันมาดูโปรแกรมที่ฟรีบ้างแล้ว และก็เลยลง php กับ MySQL
ตอนนี้ก็กำลัง d/l mysql อยู่ มีตัวอย่างในเว็บต่างประเทศให้ศึกษามากมาย (เมื่อก่อนไม่เคยมองเห็น เพราะรักแต่ ASP) ซึ่งสามารถเข้ามาแทน ASP ที่ผมเคยทำได้ทุกรายการที่ผมต้องการ (ยังไม่ได้ลองทำ แต่เห็นมีตัวอย่างครบถ้วนหมดแล้ว) และที่สำคัญ ฟรี ครับ ยังไงผมจะเข้ามาแจ้งความคืบหน้าเรื่อยๆ ครับ *** Edited by Supap Chaiya *** 5/11/2003 8:18:27 PM
หลายท่านที่เคยเล่น php มานานคงจะว่าผมเชย แต่ผมรักเดียวใจเดียวกับ ASP และ Access มาตลอด เพราะผมคิดว่าน่าจะยึดโปรแกรมในกลุ่มใดกลุ่มหนึ่งให้ลึกซึ่งไปเลย แต่การจับกุมโปรแกรมเถื่อนในปีนี้ ทำให้ผมต้องเริ่มที่จะในอ่อนหันมาดูโปรแกรมที่ฟรีบ้างแล้ว และก็เลยลง php กับ MySQL
ตอนนี้ก็กำลัง d/l mysql อยู่ มีตัวอย่างในเว็บต่างประเทศให้ศึกษามากมาย (เมื่อก่อนไม่เคยมองเห็น เพราะรักแต่ ASP) ซึ่งสามารถเข้ามาแทน ASP ที่ผมเคยทำได้ทุกรายการที่ผมต้องการ (ยังไม่ได้ลองทำ แต่เห็นมีตัวอย่างครบถ้วนหมดแล้ว) และที่สำคัญ ฟรี ครับ ยังไงผมจะเข้ามาแจ้งความคืบหน้าเรื่อยๆ ครับ *** Edited by Supap Chaiya *** 5/11/2003 8:18:27 PM
33 Reply in this Topic. Dispaly 2 pages and you are on page number 1
1 @R00238
ตอนลง mysql ผมได้ทำตามคำแนะนำของเว็บแห่งหนึ่งในต่างประเทศ ปรากฏว่าไม่สามารเรียก mysql ได้
คำแนะนำเขามีอยู่ว่า ให้ไปเปลี่ยนไฟล์ my-medium.cnf ไปเป็น my.ini หรือ my.cnf แล้ว โดยเก็บไว้ทั้งที่ c:\ และ c:\winnt โดยให้เพิ่มส่วนของ [mysqld] ดังนี้ด้วย
default-character-set=tis620
basedir=d:/program files/mysql/
datadir=d:/program files/mysql/
แต่เมื่อสั่ง start จะเกิด error ดังนี้
C:\>net start mysql
The MySql service is starting.
The MySql service could not be started.
A system error has occurred.
System error 1067 has occurred.
The process terminated unexpectedly.
ซึ่งความจริงแล้วเมื่อลงเวอร์ชัน 3.23.49a ก็ไม่ต้องไปแก้ไขไฟล์ใดๆ ทั้งสิ้น เพียงแต่ไป install เป็น Service ก่อน โดยใช้คำสั่ง
c:\mysql\bin\mysqld-nt -install
จากนั้นก็ไป Start โดยใช้ำคำสั่ง
c:\net start mysql
แล้วค่อยเข้าไปเรียนก mysql โดยกำหดน host และ user name ดังนี้
c:\mysql\bin\mysql -h localhost -u root
ก็เข้าได้แล้ว
ถ้ามีอะไรคืบหน้าผมจะมาแจ้งให้ทราบนะครับ
2 @R00240
ขั้นตอนต่อไปคือ การลองสร้าง database ใน mysql
อันดับแรกต้องให้ mysql แสดงฐานข้อมูลที่มีอยู่ในเครื่องฯ เราก่อน ดังนี้
mysql> SHOW DATABASES;
จะได้
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 rows in set (0.11 sec)
การลบฐานข้อมูลออกจะใช้ drop ดังนี้
mysql> DROP DATABASE test;
เมื่อต้องการที่จะยกเลิกคำสั่งได้พิมพ์ไปแล้ว ให้พิมพ์ \c เพื่อยกเลิก mysql ก็จะขึ้นบรรทัดใหม่ให้เรา
mysql> DROP DATABASE\c
mysql>
ถ้าต้องการที่จะออกจาก mysql ให้พิมพ์คำว่า quit หรือ exit ก็ได้
mysql> quit
Bye
มาถึงตอนนี้แล้ว ช่วยพิมพ์ exit ให้ผมหน่อย ผมจะไปวิ่งออกกำลังกายก่อน เดี๋ยวจะมาเล่าต่ออีก ถึงขึ้นตอนการสร้างตารางและการคีย์ข้อมูลลงไป
myself>exit
Bye For Now
3 @R00244
มาถึงตอนการสร้างฐานข้อมูลเข้าไปใน mysql จะมีคำสั่งดังนี้
mysql> CREATE DATABASE jokes;
จากข้างบนเป็นการสร้างฐานข้อมูลชื่อ jokes
จากนั้นเราต้องบอกให้ mysql รู้ว่าจะใช้ฐานข้อมูลนี้ โดยใช้คำสั่ง
mysql> use jokes;
และก็มาถึงการสร้างตาราง โดยจะมี syntax ดังนี้
mysql> CREATE TABLE table_name (
-> column_1_name column_1_type column_1_details,
-> column_2_name column_2_type column_2_details,
-> ...
-> );
และนี่คือตัวอย่างจริง
mysql> CREATE TABLE Jokes (
-> ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> JokeText TEXT,
-> JokeDate DATE NOT NULL
-> );
เป็นการสร้างฟีลด์ขึ้นมา 3 ฟีลด์คือ id, joketext และ jokedate โดยมีการกำหนดประเภทของฟีลด์และรายละเอียดของฟีลด์ด้วย
เมื่อต้องการดูว่าในฐานข้อมูลนี้มีตารางอะไรบ้างก็ใช้คำสั่งนี้
mysql> SHOW TABLES;
ผลลัพธ์ก็จะเป็น
+-----------------+
| Tables in jokes |
+-----------------+
| Jokes |
+-----------------+
1 row in set
ถ้าจะดูโครงสร้างของตารางเป็นอย่างไรบ้างก็ใช้ Describe
mysql> DESCRIBE Jokes;
+----------+---------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------+------+-----+------------+----------------+
| ID | int(11) | | PRI | 0 | auto_increment |
| JokeText | text | YES | | NULL | |
| JokeDate | date | | | 0000-00-00 | |
+----------+---------+------+-----+------------+----------------+
3 rows in set
บางครั้งถ้าต้องการที่จะลบตารางก็ใช้ Drop ดังนี้
mysql> DROP TABLE tableName;
จะเห็นว่า สามารถที่จะนำความรู้เกี่ยวกับการสร้างตารางของ Access ด้วย VBA แล้ว จะเรียนรู้ MySQL ได้ไม่ยากเลยนะครับ
ผมก็เรียนรู้วันนี้เองแหล่ะครับ โดยดูจากเว็บ Build your own Database Driven Website using PHP & MySQL - Part 2: Getting Started with MySQL (http://www.webmasterbase.com/article/527)
ตอนต่อไปจะเป็นการใส่ข้อมูลเข้าไปในตารางของ mysql
4 @R00245
โปรแกรม php สามารถ d/l จากที่นี่ก็ได้ครับ ที่ http://agserver.kku.ac.th/vegetables/prgs/php-4.1.2-Win32.zip (~6 mb)
และ MySQL ที่ http://agserver.kku.ac.th/vegetables/prgs/mysql-max-3.23.49-win.zip ครับ (~12 mb)
5 @R00246
Round() ของ MySQL มีปัญหา (อีกแล้ว) ดังนี้
mysql> select round(1.45850,3);
+------------------+
| round(1.45850,3) |
+------------------+
| 1.458 |
+------------------+
1 row in set (0.00 sec)
เป็นคำตอบที่ผิด จะต้องได้ 1.49
mysql> select round(1.45851,3);
+------------------+
| round(1.45851,3) |
+------------------+
| 1.459 |
+------------------+
1 row in set (0.00 sec)
mysql> select round(1.458500,3);
+-------------------+
| round(1.458500,3) |
+-------------------+
| 1.458 |
+-------------------+
1 row in set (0.00 sec)
mysql> select round(1.458501,3);
+-------------------+
| round(1.458501,3) |
+-------------------+
| 1.459 |
+-------------------+
1 row in set (0.00 sec)
ถ้าทำใน Excel จะได้เป็น 1.459 ถูกต้อง
แต่ถ้าเป็นใน Access 2K จะได้เป็น
? round(1.4585,3)
1.458
ผิดเหมือนกัน เฮ่อ!!
ฉะนั้นโปรแกรมที่ไม่มีปัญหากับ Round() ก็จะมี Excel (ที่เรียกใน Worksheet นะ ถ้าเรียกใน VBA ก็มีปัญหาเหมือนกัน), MS SQL Server, Oracle
ใน MS SQL Server จะได้
select round(1.4585,3);
-------
1.4590
(1 row(s) affected)
ส่วนใน Oracle เคยทดสอบแล้วไม่มีปัญหา อยากจะทำให้ดูเหมือนกัน แต่ยังไม่สามารถจะ Start Oracle ตอนนี้ได้ครับ
6 @R01992
วันนี้พอดีเปิดกระทู้เก่า ๆดู อาจารย์ก็สนใจ PHP เหมือนกัน ไม่ทราบว่าพอมีหนทางทดแทนกันได้หรือเปล่าครับในการใช้ My SQL แทน access
หรือใครที่ทำ PHP กับ My SQL ข้อมูลเกี่ยวกับระบบทะเบียนนักเรียนช่วยแนะนำลิงค์ให้หน่อยครับ เพราะตอนนี้จำเป็นผมต้องใช้ Linux ด้วย เคยฝึกทำโปรแกรมทะเบียนวัตินักเรียนด้วย access 2000 กับ winmeแต่ตอนนี้ต้องปรับมาใช้ Linux ผมยังไม่ค่อยกระจ่างกับฐานข้อมูลเท่าไรนัก
7 @R01994
ผมก็ไม่เก่งอะไรหรอกครับ แต่เท่าที่ผมลองใช้งานมา มีตัวหนึ่งที่ผมประทับใจคือ appserv-win32-1.8.0 สามารถทำให้เครื่อง windows98 ทำ webserver ได้มีให้ครบหมดเลย php ,mysql,phpmyaidmin,phpnuk ,Apache ติดตั้งครั้งเดี่ยวไม่ต้องทำอะไรมากก็สามารถเรียกใช้งานได้เลย แต่ในคณะนี้ คงเปลี่ยนเวอชั่นใหม่แล้วละครับถ้ายังไงก็ลอง d/l มาลองใช้งานดูครับ
http://academic.cmri.ac.th/appserv/index.php
8 @R02000
ขอบคุณครับจะลองเอาไปศึกษาดู ตอนนี้ต้องหัดทั้ง Access + PHP + Linux สงสัยตาเขียวแน่เลย
9 @R02007
อ.ครับ Linux ตัวไหน work สุด ๆ จะได้ทดลองเล่น
10 @R02008
Linux เท่าที่เคยลองใช้ Red Hat ค่ะ
11 @R02024
my sql มีหลายเวอร์ชั่นหรือเปล่าครับ ถ้ามีเวอร์ชั่นไหนน่าใช้ที่สุดครับ
12 @R03841
ผมเพิ่งจะ d/l MySQL 4.0.13 มาลงใน Windows อีกครั้ง
ซึ่งการลงครั้งนี้ ผมลงในไดรฟ์ F:\mysql แทน เลยต้องสร้างไฟล์ my.ini หรือ my.cnf ดังนี้ แล้วนำไปเก็บไว้ที่ F: หรือ F:\WinNt ด้วย
[mysqld]
default-character-set=tis620
basedir=F:/mysql/
datadir=F:/mysql/data/
การเข้า MySQL ก็เหมือนเดิม คือไปที่ห้อง MySQL ก่อน
F:\>cd mysql\bin
เปิด Service
F:\mysql\bin>mysqld
แล้วก็เข้า MySQL
F:\mysql\bin>mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.0.13-max-debug
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show databases;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 rows in set (0.05 sec)
ส่วนการลง MySQL ใน Linux ค่อยว่ากันอีกที่ครับ
ซึ่งการลงครั้งนี้ ผมลงในไดรฟ์ F:\mysql แทน เลยต้องสร้างไฟล์ my.ini หรือ my.cnf ดังนี้ แล้วนำไปเก็บไว้ที่ F: หรือ F:\WinNt ด้วย
[mysqld]
default-character-set=tis620
basedir=F:/mysql/
datadir=F:/mysql/data/
การเข้า MySQL ก็เหมือนเดิม คือไปที่ห้อง MySQL ก่อน
F:\>cd mysql\bin
เปิด Service
F:\mysql\bin>mysqld
แล้วก็เข้า MySQL
F:\mysql\bin>mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.0.13-max-debug
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show databases;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 rows in set (0.05 sec)
ส่วนการลง MySQL ใน Linux ค่อยว่ากันอีกที่ครับ
13 @R03857
ผมก้อไม่เก่งอะไรมากน่ะ แต่ที่ทำงานผมให้ Access + Mysql+PHP + Mysql มานานแล้ว 1 เศษ ๆ ได้แล้วครับแต่รันใน win2000 server น่ะครับ จึงเรียนถามอาจารย์ว่าสามารถใช้ default-character-set=tis620 ได้ด้วยเหรอครับ ผมใช้ที่ไร ไม่เกิน 2 ชั่วโมงเครื่องจะมีปัญหา เวลามีการใช้ระบบ เวบ มาก ๆ แต่ผมจะใช้เป็น win1251 แทนครับเพราะสังเกตุดูแล้ว ในเครื่องเวลาติดตั้ง Mysql จะไม่มี font tis620 ครับ อาจารย์สามารถใช้ tools เป็น mysqlfront จะทำให้สะดวก แต่ถ้ารันผ่านหน้าเวบก้อเป็น MyAdmin ก้อได้แต่ต้อง set ค่า Password ให้เค้าด้วยไม่งั้นก้อ ใช้ uesr root ก้อสามารถเข้าฐานข้อมูลได้เลยครับ ดีครับที่อาจารย์หันมาใช้ Php + Mysql ผมจะได้มีคนปรึกษาด้วยครับ
14 @R03858
ผมเองก็เพิ่งจะเริ่มกลับมาจับ MySQL อีกครั้ง เพราะได้มีโอกาสไปเล่น Linux จึงทำให้ต้องใช้ MySQL อีก
ครั้งก่อนก็แค่ลองติดตั้ง ลอง connect ผ่านทาง Access แล้วก็จบอยู่แค่นั้น
ส่วนเจ้า php ก็ยิ่งแล้วใหญ่ แต่คราวนี้จะเอาจริงแล้วครับ หวนกลับไปอ่านหนังสือ php ที่ซื้อมาปีกว่าๆ แล้วอีกครั้ง ลองทำตามตัวอย่างแล้ว เริ่มเข้าใจ syntax มากขึ้นและคิดว่าน่าจะเขียนเว็บด้วย php จะคุ้มค่ากว่า asp
ผมคงต้องเป็นผู้ขอคำปรึกษามากกว่า มาแลกเปลี่ยนกันครับ
ครั้งก่อนก็แค่ลองติดตั้ง ลอง connect ผ่านทาง Access แล้วก็จบอยู่แค่นั้น
ส่วนเจ้า php ก็ยิ่งแล้วใหญ่ แต่คราวนี้จะเอาจริงแล้วครับ หวนกลับไปอ่านหนังสือ php ที่ซื้อมาปีกว่าๆ แล้วอีกครั้ง ลองทำตามตัวอย่างแล้ว เริ่มเข้าใจ syntax มากขึ้นและคิดว่าน่าจะเขียนเว็บด้วย php จะคุ้มค่ากว่า asp
ผมคงต้องเป็นผู้ขอคำปรึกษามากกว่า มาแลกเปลี่ยนกันครับ
15 @R03872
ผมลองเอาเว็บบอร์ดมาใช้ดูก็พอแก้ได้เป็นบางอันครับ เห็นมีคนใช้เยอะเหมือนกัน
http://php.deeserver.com/download.php
http://php.deeserver.com/download.php
16 @R03875
ขอบคุณครับ เดี๋ยวต้องนำมาลองดูสักหน่อย คงต้องศึกษาจากตัวอย่างเหล่านี้อีกมากครับ
17 @R03897
เห็นผลแล้วครับ
ตอนผมลองเล่น postnuke (www.postnuke.com)
แล้วการกำหนด default-character-set=tis620 จะทำให้ไม่สามารถ config postnuke ได้
พอเอาบันทัดนี้ออก ก็เข้าได้เลย
ตอนผมลองเล่น postnuke (www.postnuke.com)
แล้วการกำหนด default-character-set=tis620 จะทำให้ไม่สามารถ config postnuke ได้
พอเอาบันทัดนี้ออก ก็เข้าได้เลย
18 @R03901
...อาจารย์สุภาพไม่ใช้ phpMyadmin (php script) ช่วยจัดการ mysql เหรอครับ
...มีอีกโปรแกรมที่ดีกว่าคือ Mysql-Front (Free)
...อีกโปรแกรมที่น่าลองคือ Navicat Mysql studio (share ware)
...มีอีกโปรแกรมที่ดีกว่าคือ Mysql-Front (Free)
...อีกโปรแกรมที่น่าลองคือ Navicat Mysql studio (share ware)
19 @R03903
ผมกำลังใช้ PHP กับ MySQL ที่รันบน windows2000 advance Server...
กำลังมันจนลืมโลกไปเลยครับ ..ใครสนใจ แลกเปลี่ยนประสบการณ์กันได้ครับ..
กำลังมันจนลืมโลกไปเลยครับ ..ใครสนใจ แลกเปลี่ยนประสบการณ์กันได้ครับ..
20 @R03904
...คุณ Badman ใช้ php แบบ cgi (php.exe) หรือแบบ isapi (php4ispai.dll) ครับ
...เพราะผมใช้แบบ cgi แล้วไม่ได้ ต้องเลือกแบบหลังจึงได้ (ตอนนี้ใช้ php 5 )
...เพราะผมใช้แบบ cgi แล้วไม่ได้ ต้องเลือกแบบหลังจึงได้ (ตอนนี้ใช้ php 5 )
Time: 0.1292s