<?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 บรรทัด