thaiall logomy background
coding : mysql_update357.txt.
my town
Source : Perl | PHP | ASP | JSP | HTML | HTML5 | JavaScript | Java | COBOL | C++ | MS Access | VBNet | VB | Python | โค้ดดี
File : mysql_update357.txt. ID : 9144
Skin : Default | Sons-of-obsidian | Sunburst | Highlighter | Full
คำอธิบายโปรแกรม
ารเชื่อมต่อกับ mysql ด้วย php มีหลายรูปแบบให้เลือกใช้ บางแบบถูกบังคับด้วยเงื่อนไขของรุ่น เช่น mysql_connect ที่จะใช้ไม่ได้บน php7 แต่ใช้ได้บน php5 ส่วน mysqli ก็ใช้ได้แบบมุมมอง object กับไม่เป็น การ fetch ก็มีถึง 3 แบบ คือ object, assoc และ array ซึ่งเขียนเหมือนกันเมื่อใช้ตัวแปลภาษาต่างกัน จึงทำตัวอย่าง 9144 ให้เรียกใช้คำสั่งผ่านฟังก์ชัน โดยแยกโค้ด #coding ส่วนของ process กับ database function ออกจากกัน และมาตรวจเงื่อนไขในฟังก์ชันว่าปัจจุบันใช้ตัวแปลรุ่นใด หรือเลือกเชื่อมแบบใด ก็จะทำงานไปตามนั้น ซึ่งขยายตัวอย่างมาจาก 9137 และ 9143 ที่ขยับโค้ดให้เหมาะกับแต่ละสภาพแวดล้อม ทั้งในห้องเรียน ในหอพัก หรือในฟรีเว็บโฮสติ้ง
<?php 
session_start();
ini_set('error_reporting', E_WARNING);  // E_ALL : get deprecated
ini_set('display_errors', 'on');
/* ปรับปรุง 16 พฤศจิกายน 2562
- เผยแพร่ใน http://www.thaiall.com/source 
- เริ่มต้นต้องสร้างตารางก่อน ดูที่ตัวแปร $create_sql
- ตัวอย่างที่ https://blog.ghost3k.net/articles/php/89/updating-mysql-code-to-mysqli-in-php
*/
# ส่วนกำหนดค่าเริ่มต้นของระบบ
$host     = "localhost";
$db       = "test";  
$tb       = "test"; 
$user     = "root"; // รหัสผู้ใช้ ให้สอบถามจากผู้ดูแลระบบ
$password = "";    // รหัสผ่าน ให้สอบถามจากผู้ดูแลระบบ
$create_sql = "create table test (id varchar(20),  ns varchar(20), salary varchar(20))
engine = InnoDB default charset=utf8 collate=utf8_unicode_ci;";
$drop_sql = "drop table test";
if (isset($_REQUEST{'action'})) $act = $_REQUEST{'action'}; else $act = "";
# จัดการ session ของ php7
if (isset($_REQUEST["v7"])) {
  $_SESSION["v7"] = false;	
  if($_REQUEST["v7"] == "obj") $_SESSION["v7"] = true;
}	
# ส่วนสร้าง และลบตาราง
if (strlen($act) > 0 && ($act == "createtable" || $act == "droptable")) {
  doconnect();
  if($act == "droptable") doquery($drop_sql); else  doquery($create_sql);  
  footer("$act : completely<br/><a href='?'>back</a>");
}  
# ส่วนแสดงผลหลัก ทั้งปกติ และหลังกดปุ่ม del หรือ edit
if (strlen($act) == 0 || $act == "del" || $act == "edit") {
  doconnect();
  doquery("select * from test");
  echo "<table>";
  while (dofetch("object")) {
    if (isset($_REQUEST{'id'}) && $_REQUEST{'id'}  == getfld("object","id")) $chg = " style='background-color:#f9f9f9"; else $chg = " readonly style='background-color:#ffffdd";
    echo "<tr><form action='' method=post>
      <td><input name=id size=5 value='". getfld("object","id") . "' style='background-color:#dddddd' readonly></td>
      <td><input name=ns size=40 value='". getfld("object","ns") . "' $chg'></td>
      <td><input name=salary size=20 value='". getfld("object","salary") . "' $chg;text-align:right'></td>
      <td>";
    if (isset($_REQUEST{'id'}) && $_REQUEST{'id'} == getfld("object","id")) {
      if ($act == "del") echo "<input type=submit name=action value='del : confirm' style='height:40;background-color:yellow'>";
      if ($act == "edit") echo "<input type=submit name=action value='edit : confirm' style='height:40;background-color:#aaffaa'>";
    } else {
      echo "<input type=submit name=action value='del' style='height:26'> <input type=submit name=action value='edit' style='height:26'>";
    }
    echo "</td></form></tr>";
  }	
  echo "<tr><form action='' method=post><td><input name=id size=5></td><td><input name=ns size=40></td><td><input name=salary size=20></td><td><input type=submit name=action value='add' style='height:26'></td></tr></form></table>";
  if (isset($_SESSION["msg"])) echo "<br>".$_SESSION["msg"]; // แสดงผลค่านี้ หลังการ Refresh
  $_SESSION["msg"] = "";  // เมื่อแสดงผลแล้ว ก็ล้างค่านี้จากตัวแปร msg
  footer(null);
} 
# ส่วนเพิ่มข้อมูล
if ($act == "add") {
  doconnect();  
  doquery("insert into $tb values('". $_REQUEST{'id'} . "','". $_REQUEST{'ns'} . "','". $_REQUEST{'salary'} . "')");
  if ($r) $_SESSION["msg"] = "insert : completely";
  footer("refresh");
}
# ส่วนลบข้อมูล
if ($act == "del : confirm") {
  doconnect();
  doquery("delete from $tb where id ='". $_REQUEST{'id'} . "'");
  if ($r) $_SESSION["msg"] = "delete : completely";  
  footer("refresh");
}
# ส่วนแก้ไขข้อมูล
if ($act == "edit : confirm") {
  doconnect();
  doquery("update $tb set ns ='". $_REQUEST{'ns'} . "', salary ='". $_REQUEST{'salary'} . "' where id =" . $_REQUEST{'id'});  
  footer("refresh");
}
# รวมฟังก์ชันด้านล่างนี้
function footer($msg){
  global $conn;	
  if($msg == "refresh") {
     header("Location: ". $_SERVER["SCRIPT_NAME"]); 
     if (isset($_SESSION["v7"]) && $_SESSION["v7"] == false) 	 
	   mysqli_close($conn);
     else $conn->close();	 
     exit;
  }	
  echo "$msg<br/><a href=?action=createtable>create table</a> : <a href=?action=droptable>drop table</a>";  
  echo "<br/>version " . (int)phpversion() . " : ";  
  if ((int)phpversion() >=7) {
    if (isset($_SESSION["v7"]) && $_SESSION["v7"] == false) 
      echo "<a href=?v7=obj>mysqli object</a> : mysqli no object";
    else echo "mysqli object : <a href=?v7=noobj>mysqli no object</a>";  
  }  
  exit;
}	
function doconnect(){
  global $conn,$host,$user,$password,$db;	
  if ((int)phpversion() >=7) {  
    if (isset($_SESSION["v7"]) && $_SESSION["v7"]  == false) {
      $conn = mysqli_connect($host, $user, $password, $db);	
      if (!$conn) footer("Connection failed: " . mysqli_connect_error());   
    } else {
      $conn = new mysqli($host, $user, $password, $db);	
      if ($conn->connect_error) footer("Connection failed: " . $conn->connect_error);   
    }  
  } else {
    $conn = mysql_connect($host, $user, $password);	
    if (!$conn) footer("Connection failed: " . mysql_error());   	  
  }	  
}
function doquery($myq){
  global $r,$conn,$db;
  if ((int)phpversion() >=7) {    
    if (isset($_SESSION["v7"]) && $_SESSION["v7"]  == false) {
      $r = mysqli_query($conn,$myq);   
    } else {
      $r = $conn->query($myq); 
    }  
    if (!$r)  footer("Query : Fail<br/>$myq");
  } else {
      $r = mysql_db_query($db,$myq);   	  
     if (!$r)  footer("Query : Fail<br/>$myq");	  
  }	  
}	
function dofetch($t) {
  global $o, $r;	 // object, assoc, array
  if ((int)phpversion() >=7) {  
    if($t == "object") return ($o = $r->fetch_object());
  } else {
    if($t == "object") return ($o = mysql_fetch_object($r));
  }	
}
function getfld($t,$fld) {
  global $o; // การอ้างอิงเขตข้อมูลเหมือนกันทั้งใน php7 และ php5 	
  if($t == "object") return ($o->{$fld}); 
}
?>
จำนวน : 136 บรรทัด
าษาเฮชทีเอ็มแอล (HTML = HyperText Markup Language) คือ ภาษาคอมพิวเตอร์ที่ออกแบบมาเพื่อใช้ในการสร้างเว็บเพจที่เรียกดูผ่านทางเว็บเบราว์เซอร์ (Web Browser) เริ่มพัฒนาโดย ทิม เบอร์เนอรส์ ลี (Tim Berners Lee) ในปัจจุบัน HTML ล่าสุดคือ รุ่น 5 เป็นมาตรฐานหนึ่งของ ISO ซึ่งจัดการโดย World Wide Web Consortium (W3C) ในปัจจุบัน ทาง W3C ผลักดัน รูปแบบของ HTML แบบใหม่ ที่เรียกว่า XHTML รุ่นแรกคือ 1.0 (ม.ค.2543) ซึ่งมีโครงสร้างเป็นแบบ XML (eXtensible Markup Language)
าษาพีเอชพี (PHP Language) คือ ภาษาคอมพิวเตอร์ประเภทโอเพนท์ซอร์ท (Open Source Computer Language) สำหรับพัฒนาเว็บเพจแบบไดนามิก เมื่อเครื่องบริการได้รับคำร้องจากผู้ใช้ก็จะส่งให้กับ ตัวแปลภาษา ทำหน้าที่ประมวลผลและส่งข้อมูลกลับไปยังเครื่องของผู้ใช้ที่ร้องขอ ในรูปเอชทีเอ็มแอล ภาพ หรือแฟ้มดิจิทอลอื่นใด ลักษณะของภาษามีรากฐานคำสั่งมาจากภาษาซี เป็นภาษาที่สามารถพัฒนาให้ใช้งานแบบโต้ตอบกับผู้ใช้ได้
าษาไพทอน (Python Language) คือ ภาษาคอมพิวเตอร์ประเภทโอเพนท์ซอร์ท (Open Source Computer Language) สำหรับพัฒนาแอพพลิเคชั่นโดยไม่ยึดติดกับแพลตฟอร์ม (Platform) และใช้ในงานได้หลายประเภท ทั้งใช้ในการประมวลผลผ่านคอมมานด์ไลน์ หรือเป็นเว็บเพจแบบไดนามิก เมื่อเครื่องบริการได้รับคำร้องจากผู้ใช้ก็จะส่งให้โค้ดให้กับตัวแปลภาษา เพื่อทำหน้าที่ประมวลผลและส่งข้อมูลกลับไปยังเครื่องของผู้ใช้ที่ร้องขอ ในรูปข้อความ เอชทีเอ็มแอล ภาพ หรือแฟ้มดิจิทอลอื่นใด ลักษณะของภาษามีรากฐานคำสั่งมาจากภาษาซี เป็นภาษาที่สามารถพัฒนาให้ใช้งานแบบโต้ตอบกับผู้ใช้ได้ จุดที่แตกต่างกับภาษาอื่น คือ การรวบรวมจุดเด่นของแต่ละภาษามารวมเข้าด้วยกัน
อสคิวแอล (SQL = Structured Query Language) คือ ภาษาสอบถามข้อมูล หรือภาษาจัดการข้อมูลอย่างมีโครงสร้าง มีการพัฒนาภาษาคอมพิวเตอร์ และโปรแกรมฐานข้อมูลที่รองรับมากมาย เพราะจัดการข้อมูลได้ง่าย เช่น MySQL, MariaDB, MsSQL, PostgreSQL หรือ MS Access เป็นต้น สำหรับโปรแกรมฐานข้อมูลที่ได้รับความนิยมคือ MySQL หรือ MariaDB เป็น Open Source ที่ใช้งานได้ทั้งใน Linux และ Windows
วัสดีชาวโลก (Hello World) คือ ผลลัพธ์ครั้งแรกที่นักพัฒนาโปรแกรมนิยมเลือกใช้แสดงผลในโปรแกรมแรกที่เขียนขึ้นเพื่อทดสอบการทำงาน ข้อความนี้ทำให้นึกถึงมนุษย์ต่างดาวที่มาเยือนโลกและกล่าวกับมนุษย์เมื่อพบกันครั้งแรกในภาพยนตร์
ตัวอย่าง Hello World
ปรับปรุงโปรแกรม source.pl : 2565-07-24
rspsocial
Thaiall.com