510 likes | 641 Views
PHP with MySQL. เนื้อหา. ขั้นตอนในการเรียกใช้ฐานข้อมูลจากเว็บ ฟังก์ชันอื่นๆ ที่เกี่ยวข้องกับการจัดการฐานข้อมูล. ขั้นตอนในการเรียกใช้ฐานข้อมูลจากเว็บ. การเชื่อมต่อกับฐานข้อมูล. การเรียกใช้ฐานข้อมูลผ่านเว็บ. การใช้ภาษา SQL กับฐานข้อมูล MySQL. การยกเลิกการเชื่อมต่อกับฐานข้อมูล.
E N D
เนื้อหา • ขั้นตอนในการเรียกใช้ฐานข้อมูลจากเว็บ • ฟังก์ชันอื่นๆ ที่เกี่ยวข้องกับการจัดการฐานข้อมูล
ขั้นตอนในการเรียกใช้ฐานข้อมูลจากเว็บขั้นตอนในการเรียกใช้ฐานข้อมูลจากเว็บ การเชื่อมต่อกับฐานข้อมูล การเรียกใช้ฐานข้อมูลผ่านเว็บ การใช้ภาษา SQLกับฐานข้อมูลMySQL การยกเลิกการเชื่อมต่อกับฐานข้อมูล
ขั้นตอนในการเรียกใช้ฐานข้อมูลจากเว็บขั้นตอนในการเรียกใช้ฐานข้อมูลจากเว็บ • ในการเขียน PHPเพื่อเรียกใช้ฐานข้อมูลมีขั้นตอนต่างๆ ดังต่อไปนี้ • การเชื่อมต่อกับฐานข้อมูล • การเรียกใช้ฐานข้อมูลผ่านเว็บ • การใช้ภาษา SQLกับฐานข้อมูล MySQL • การยกเลิกการเชื่อมต่อกับฐานข้อมูล
การเชื่อมต่อกับฐานข้อมูลการเชื่อมต่อกับฐานข้อมูล • การเชื่อมต่อกับฐานข้อมูลMySQLในภาษา PHPสามารถใช้ 2 ฟังก์ชัน ต่อไปนี้ คือ • mysql_connect() • mysql_pconnect()
mysql_connect() รูปแบบ int mysql_connection(localhost, username, password) • ทำการเชื่อมต่อฐานข้อมูลโดยต้องระบุ database server,ชื่อผู้ใช้และรหัสผู้ใช้ • เมื่อใช้งานเสร็จต้อง ต้องยกเลิกการเชื่อมต่อด้วยฟังก์ชันmysql_close()
mysql_pconnect() รูปแบบ int mysql_pconnection(localhost, username, password) • ทำการเชื่อมต่อฐานข้อมูลโดยต้องระบุ database server,ชื่อผู้ใช้และรหัสผู้ใช้ • เมื่อใช้งานเสร็จต้อง จะยกเลิกการเชื่อมต่อโดยอัตโนมัติ
connect_inc.php <?php // connect_inc.php define("DB_SERVER", "localhost"); // databaseserver define("USERNAME", "root"); //username define("PASSWORD", ""); // no password define("CURRENT_DB", “ict"); // current database $db = mysql_pconnect( DB_SERVER, USERNAME, PASSWORD); ?> หมายเหตุ : define("CURRENT_DB", “ict"); จะขึ้นอยู่กับว่านิสิตตั้งชื่อ หรือ กำหนดให้ใช้งานฐานข้อมูลตัวใด ในที่นี้ สมมติให้ใช้ฐานข้อมูลชื่อ ict
การเรียกใช้ฐานข้อมูลผ่านเว็บการเรียกใช้ฐานข้อมูลผ่านเว็บ รูปแบบ int mysql_select_db(string dbname) • ทำการเรียกใช้งานฐานข้อมูลผ่านเว็บ โดยเราต้องกำหนดชื่อของฐานข้อมูลที่ต้องการเป็น argumentที่ส่งไป
การใช้ภาษา SQLมาใช้กับฐานข้อมูล MySQL รูปแบบ int mysql_query(string query, [int db_connect]) • เรียกใช้งาน SQLที่เราต้องการ แต่ต้องใช้ร่วมกับmysql_select_db()
การใช้ภาษา SQLมาใช้กับฐานข้อมูล MySQL รูปแบบ int mysql_db_query(stringdbname, string query, [int db_connect]) • เรียกใช้งาน SQLที่เราต้องการ โดยไม่ต้องใช้ร่วมกับmysql_select_db()
mysql_db_query() require(“connect_inc.php”); . . . $sql_login = "SELECT * FROM login WHERE USERNAME='" . $username . "' AND PASSWORD='" . $password . "'"; $login_result = mysql_db_query(CURRENT_DB, $sql_login); $login_rows = mysql_fetch_array($login_result); $user = $login_rows["USERNAME"]; . . . เมื่อเราต้องการประมวลผล คำสั่ง SQLที่เตรียมเอาไว้
การยกเลิกการเชื่อมต่อกับฐานข้อมูลการยกเลิกการเชื่อมต่อกับฐานข้อมูล รูปแบบ int mysql_close(db_connect) • ทำการยกเลิกการเชื่อมต่อกับฐานข้อมูลที่เราเชื่อมต่อผ่านคำสั่ง mysql_connect()
ฟังก์ชันอื่นๆ ที่เกี่ยวข้องกับการจัดการฐานข้อมูล
ฟังก์ชันอื่นๆ ที่เกี่ยวข้องกับการจัดการฐานข้อมูล
ฟังก์ชันอื่นๆ ที่เกี่ยวข้องกับการจัดการฐานข้อมูล
ฟังก์ชันอื่นๆ ที่เกี่ยวข้องกับการจัดการฐานข้อมูล
ฟังก์ชันอื่นๆ ที่เกี่ยวข้องกับการจัดการฐานข้อมูล
ฟังก์ชันอื่นๆ ที่เกี่ยวข้องกับการจัดการฐานข้อมูล
mysql_free_result() รูปแบบ int mysql_free_result(intresult) • ใช้สำหรับคืนหน่วยความจำที่จัดเก็บผลลัพธ์ข้อมูลจากการคิวรีข้อมูลจากฐานข้อมูล
mysql_free_result() require(“connect_inc.php”); . . . $sql_login = "SELECT * FROM login WHERE USERNAME='" . $username . "' AND PASSWORD='" . $password . "'"; $login_result = mysql_db_query(CURRENT_DB, $sql_login); $login_rows = mysql_fetch_array($login_result); $user = $login_rows["USERNAME"]; mysql_free_result($login_result); . . . เมื่อเราเลิกใช้งาน result ที่ได้จาก mysql_db_query() หากต้องการคืนค่าให้กับหน่วยความจำ
mysql_create_db() รูปแบบ int mysql_create_db(stringdbname[,intdb_connect]) • ทำการสร้างฐานข้อมูล สำหรับ db_connectที่เรากำหนด
mysql_create_db() require(“connect_inc.php”); . . . mysql_create_db(“pyo”, $db); . . . เมื่อเราต้องการสร้างฐานข้อมูลชื่อ pyo
mysql_drop_db() รูปแบบ int mysql_drop_db(stringdbname[,intdb_connect]) • ทำการลบฐานข้อมูล สำหรับ db_connectที่เรากำหนด
mysql_drop_db() require(“connect_inc.php”); . . . mysql_drop_db(“pyo”, $db); . . . เมื่อเราต้องการลบฐานข้อมูลชื่อ pyo
mysql_fetch_array() รูปแบบ array mysql_fetch_array(intresult[,intresult_type]) • ดึงค่าผลลัพธ์ที่ได้จากคำสั่ง mysql_query()หรือ mysql_db_query() เก็บลงอาร์เรย์เพื่อนำไปใช้งานต่อไป
mysql_fetch_array() require(“connect_inc.php”); . . . $sql_login = "SELECT * FROM”; $login_result = mysql_db_query(CURRENT_DB, $sql_login); while($login_rows = mysql_fetch_array($login_result)){ echo “username =” . $login_rows["USERNAME"]; echo “password =” . $login_rows[“PASSWORD"]; . “<br/>; } . . . เมื่อเราต้องการนำข้อมูล1เรคอร์ด ที่ได้จากตารางข้อมูล login มาจัดเก็บไว้ในอาร์เรย์ ชื่อ $login_rows หากต้องการอ่านข้อมูลทั้งหมด ต้องใช้loop while เพื่ออ่านข้อมูล ที่มีให้หมด
mysql_fetch_row() รูปแบบ array mysql_fetch_row(intresult) • ใช้สำหรับเลื่อนตำแหน่งของตัวชี้ไปยังเรคอร์ดถัดไป (MoveNext)
mysql_fetch_array() require(“connect_inc.php”); . . . $sql_login = "SELECT * FROM login”; $login_result = mysql_db_query(CURRENT_DB, $sql_login); while($login_rows = mysql_fetch_row($login_result)){ echo “username =” . $login_rows[0]; echo “password =” . $login_rows[1] . “<br/>; } . . . เมื่อเราต้องการนำข้อมูล1เรคอร์ด ที่ได้จากตารางข้อมูล login มาจัดเก็บไว้ในอาร์เรย์ ชื่อ $login_rows หากต้องการอ่านข้อมูลทั้งหมด ต้องใช้loop while เพื่ออ่านข้อมูล ที่มีให้หมด
mysql_insert_id() รูปแบบ int mysql_insert_id([ intdb_connect ]) • ใช้เรียกแสดงค่า PKล่าสุดของตารางที่เราทำการเพิ่มข้อมูล • โดยฟิลด์ PKต้องกำหนดเป็น auto_increment
mysql_insert_id () require(“connect_inc.php”); . . . $insert_author = “INSERT INTO AUTHOR (AUTHOR_NAME) VALUES(‘SOMCHAI DEEJAI’)”; $insert_result = mysql_db_query(CURRENT_DB, $insert_author); $author_id = mysql_insert_id(); echo “The last author_id is ” . $author_id; . . . เราไม่จำเป็นต้องใส่ค่า author_idในส่วนของ คำสั่งinsertเนื่องจากว่า author_idมีชนิดเป็น auto_increment หลังจากเพิ่มข้อมูลเสร็จเราสามารถตรวจสอบค่า author_id ได้จากคำสั่ง mysql_insert_id() ที่จะส่งค่ากลับเป็น ค่า auto_incrementล่าสุด ซึ่งก็คือ author_idนั้นเอง
mysql_num_rows() รูปแบบ int mysql_num_rows(intresult) • ใช้สำหรับนับจำนวนเรคอร์ดที่เรา SELECTจากการใช้คำสั่ง mysql_query() หรือ mysql_db_query()
mysql_num_rows() require(“connect_inc.php”); . . . $sql_login = "SELECT * FROM login”; $login_result = mysql_db_query(CURRENT_DB, $sql_login); $rows = mysql_num_rows($login_result); echo “You have ” . $rows . “ record(s)”; . . . ระบบจะทำการนับและส่งกลับ จำนวนเรคอร์ดข้อมูลที่อ่านได้จาก คำสั่ง SQL
mysql_affected_rows() รูปแบบ int mysql_affected_rows([ intdb_connect ]) • ใช้สำหรับนับจำนวนเรคอร์ดที่มีการเปลี่ยนแปลงล่าสุด (INSERT, UPDATE, DELETE)
mysql_affected_rows() require(“connect_inc.php”); . . . $sql_login = “DELETE * FROM login”; $login_result = mysql_db_query(CURRENT_DB, $sql_login); $rows = mysql_affected_rows($login_result); echo “You are delete” . $row . “ record(s)”; . . . ระบบจะทำการนับและส่งกลับ จำนวนเรคอร์ดข้อมูลที่ได้รับ ผลกระทบจาก SQLในกรณีที่ เป็นการ INSERT, UPDATE, DELETE
mysql_result() รูปแบบ mixed mysql_result(intresult,int record [,mixed field]) • ใช้สำหรับแสดงผลลัพธ์ในฐานข้อมูล ตามแถว(record) และคอลัมน์(Field)ที่กำหนด
mysql_result() require(“connect_inc.php”); . . . $sql_login = "SELECT * FROM login”; $login_result = mysql_db_query(CURRENT_DB, $sql_login); echo mysql_result($login_result, 0, 1); echo mysql_result($login_result, 1, 0); . . . เมื่อเราแสดงข้อมูลในเรคอร์ด และฟิลด์ที่เราต้องการ โดยเฉพาะ เจาะจง
mysql_fetch_object() รูปแบบ int mysql_fetch_object(intresult) • ใช้สำหรับดึงค่าผลลัพธ์จากฐานข้อมูลไปไว้ใน objectโดยที่เราจะสามารถระบุชื่อฟิลด์ได้เลย
mysql_fetch_object() require(“connect_inc.php”); . . . $sql_login = "SELECT * FROM login”; $login_result = mysql_db_query(CURRENT_DB, $sql_login); while($obj = mysql_fetch_object($login_result)){ echo “username =” . obj -> USERNAME . “<br/>”; echo “password =” . obj -> PASSWORD . “<br/>”; } . . . เมื่อเราแสดงข้อมูลในเรคอร์ด ที่ถูกกำหนดในลักษณะobject
mysql_data_seek() รูปแบบ int mysql_data_seek(intresult,int record ) • ใช้สำหรับระบุตำแหน่งของเรคอร์ดที่ต้องการเริ่มต้น (เรคอร์ดแรก คือ 0 )
mysql_data_seek() require(“connect_inc.php”); . . . $sql_login = "SELECT * FROM login”; $login_result = mysql_db_query(CURRENT_DB, $sql_login); mysql_data_seek($login_result, 1); // start search from record 2 while($login_rows = mysql_fetch_array($login_result)){ echo “username =” . $login_rows[“USERNAME”]; echo “password =” . $login_rows[“PASSWORD”] . “<br/>; } . . .
mysql_list_dbs() รูปแบบ int mysql_list_dbs([ intdb_connect ]) • ใช้สำหรับคืนค่าตัวชี้ (handle)ของฐานข้อมูล ใช้ร่วมกับ mysql_num_rows()เพื่อแสดงจำนวนฐานข้อมูลทั้งหมด หรือใช้ร่วมกับ mysql_tablename()เพื่อแสดงชื่อของฐานข้อมูลที่เรากำหนด
mysql_list_dbs() require(“connect_inc.php”); . . . $db_list = mysql_list_dbs($db); echo "You have " . mysql_num_rows($db_list) . " database(s)" ; . . .
mysql_list_tables() รูปแบบ int mysql_list_tables(stringdbname[, intdb_connect ]) • ใช้สำหรับคืนค่าตัวชี้ (handle)ของฐานข้อมูลที่เราระบุ โดยใช้ร่วมกับ mysql_list_dbs()เพื่อแสดงจำนวนตารางข้อมูลทั้งหมดในฐานข้อมูล หรือใช้ร่วมกับ mysql_tablename()เพื่อแสดงรายชื่อของตาราง
mysql_list_tables() require(“connect_inc.php”); . . . $table_list = mysql_list_tables(CURRENT_DB, $db); echo "You have ". mysql_num_rows($table_list) ." table(s) in “ .CURRENT_DB. “ database”; ; . . .
mysql_list_fields() รูปแบบ int mysql_list_fields(stringdbname, string table_name[, intdb_connect ]) • ใช้สำหรับคืนค่าตัวชี้ (handle)ของฐานข้อมูลที่เราระบุ โดยจะแสดงรายชื่อฟิลด์ที่จัดเก็บในตารางที่เราต้องการแสดงรายละเอียดฟิลด์
mysql_list_fields() require(“connect_inc.php”); . . . $field_list = mysql_list_fields(CURRENT_DB, “login”, $db); while($i < mysql_num_fields($field_list)){ echo “field name = “ . mysql_field_name($field_list, $i) . “<br/>”; echo “field flag = “ . mysql_field_flags($field_list, $i) . “<br/>”; echo “field type = “ . mysql_field_type($field_list, $i) . “<br/>”; $i++; } . . .
mysql_tablename() รูปแบบ int mysql_tablename( inthandle, intnumber) • ใช้แสดงชื่อของฐานข้อมูล หรือ ตารางที่เราระบุ
mysql_tablename() require(“connect_inc.php”); . . . $db_list = mysql_list_dbs($db); echo "You have " . mysql_num_rows($db_list) . " database(s) <br/>"; for($i=0; $i < mysql_num_rows($db_list); $i++){ echo $i + 1 . ". " . mysql_tablename($db_list, $i) . " <br/>"; } echo "<hr>"; $db_table = mysql_list_tables(CURRENT_DB, $db); echo "You have " . mysql_num_rows($db_table). " table(s) in " . CURRENT_DB . " database <br/>"; for($i=0; $i < mysql_num_rows($db_table); $i++){ echo $i + 1 . ". " . mysql_tablename($db_table, $i) . " <br/>"; } . . .
สรุป • ในการเชื่อมต่อกับระหว่าง PHPกับ MySQLมีลำดับการทำงานเพื่อให้สามารถใช้งานฐานข้อมูลกับ PHPได้อย่างถูกต้อง คือ • การเชื่อมต่อกับฐานข้อมูล • การเรียกใช้ฐานข้อมูลผ่านเว็บ • การใช้ภาษา SQL กับฐานข้อมูล MySQL • การยกเลิกการเชื่อมต่อกับฐานข้อมูล