thaiall logomy background
coding : mysqlworking.php.
my town
Source : Perl | PHP | ASP | JSP | HTML | HTML5 | JavaScript | Java | COBOL | C++ | MS Access | VBNet | VB | Python | โค้ดดี
File : mysqlworking.php. ID : 9116
Skin : Default | Sons-of-obsidian | Sunburst | Highlighter | Full
<?php
ini_set('max_execution_time', 86400); // 86400 = 60 * 60 * 24 seconds = 24 Hours
$start = microtime();
/*
Script_name : mysqlworking.php
Source_code : http://www.thaiall.com/perlphpasp/source.pl?9116
Version 7.2563-09-25
คำเตือน : เมื่อได้ code จะต้อง save as เป็น utf8 จึงจะแสดงผลภาษาไทยใน webpage ได้ถูกต้อง
# ===
Update Description
- ใช้คำสั่ง join fields
- เพิ่ม font kanit ของ google
- ปรับ properties เป็น style ทั้งหมด
- ตรวจสอบ phpversion() และ iconv() ทำเงื่อนไขรองรับ 5gbfree.com (php 7.1.8 mysql 5.0.12) ที่ไม่บริการ iconv() 
- ปรับเป็น mysqli แทน mysql เพื่อให้ใช้งานกับ 000webhosting.com (php 7.1.7 mysql 5.0.12)
- เพิ่มลักษณะข้อมูลเป็น ตัวอักษรภาษาไทย และภาษาอังกฤษ เมื่อ insert 1000 ผ่าน การแปลงตัวอักษรด้วย iconv();
- เพิ่มการควบคุมตัวอักษรพิเศษ เปิดปิดการป้องกัน SQL Injection ผ่านตัวแปร $protect_sql_injection สำหรับกการ search
- เพิ่มการตรวจสอบ keyword สำหรับ findname ต้อง > 1 ตัวอักษร 
- ตารางที่สร้างกำหนด COLLATION คือ การจัดเรียงและเปรียบเทียบเป็นแบบ ด้วย COLLATE utf8_unicode_ci
- ปรับให้ทำงานกับ UTF-8 ตั้งแต่สร้างตาราง ด้วย CHARSET=utf8
- ย้ายปุ่ม Delete Table ไปไว้ด้านหลัง และปรับสี
- ปรับให้ใช้กับ XAMPP บน Local host [xampp-win32-5.6.31-0-VC11-installer]
- ปรับให้ใช้กับ Palapa Web Server บน Smartphone
- ปรับให้ใช้กับ Thaiabc.ueuo.com บน Free web hosting
- เพิ่มปุ่มให้สร้าง Table ได้ทั้ง innodb และ myisam
- เปลี่ยนวิธีติดต่อ Database ตามข้อกำหนดใน php 5.4.4 บน xampp for windows 1.8.0
จาก $result = mysql_db_query($db,$query); เป็น mysql_select_db($db,$connect); และ $result = mysql_query($query,$connect);
- เริ่มพัฒนาในปี 2547 เพื่อใช้งานร่วมกับข้อมูลใน Microsoft Excel
- https://gist.github.com/thaiall/6a360c71ef95193864fcea2eb7f52e8b
# === */

/* Section 1 : Configuration */
// 1.1 Main configuration
$host  = 'localhost';
$db  = 'mysql';  // please change for the implementation
$tb  = 'car';
$user  = 'root';   // for xampp Web Server
$password  = '';   // for xampp Web Server
// $user  = 'root';  // for Palapa Web Server
// $password = 'adminadmin'; // for Palapa Web Server
// 1.2 Security option
$protect_sql_injection = false; // true = safe; false = unsafe
$phpinfo_function_allow = true; // true = can use phpinfo()
// 1.3 Database connection
$connect = new mysqli($host,$user,$password,$db);
if ($connect->connect_error) die("Connection Database :failed"); 
$result = $connect->query("show tables like '$tb'");
$tb_found = $result->num_rows;
// 1.4 phpinfo function
if (isset($_GET{'action'}) && ($_GET{'action'} == "phpinfo") && ($phpinfo_function_allow == true)) {
  phpinfo(); 
  exit;
}
// 1.5 start html
echo '<html><head><title>Mysql Working</title>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Kanit" />
<style type="text/css">
body{font-family:kanit;}
textarea{font-size:10px;color:blue;scrollbar-base-color:red;scrollbar-arrow-color:white;background-color:#ffffdd;}
input{font-family:kanit;font-size:16px;color:black;background:#ffffdd;}
</style></head><body>';
?>

<!-- Section 2 : Menu screen -->
<form action="" method="post">
<table style="background-color:blue;border-width:15px;border-style:solid;width:740px;margin-left:auto;margin-right:auto;text-align:center;">
<?php if ($tb_found == 0) { ?>
<tr><td style="background-color:white">
<input type="submit" value="Create table InnoDB" name="action" style="width:320px;height:50px;">
<input type="submit" value="Create table MyISAM" name="action" style="width:320px;height:50px;">
</td></tr>
<?php } else { ?>
<tr><td style="vertical-align:top;background-color:white;width:100;text-align:center;">
<input type="submit" value="post 1000" name="action" style="width:100px;background-color:yellow;">
<input type="submit" value="post_recs" name="action" style="width:100px;background-color:#dddddd;">
<input name="recs" value="1000" size="6">
</td>
<td style="background-color:#dddddd"><input type="submit" value="postmany" name="action" style="width:100px;background-color:#ddffdd;"> 
ข้อมูลข้างล่างนี้สามารถ copy จาก excel มา paste ได้<br/>
<textarea name="manyrecord" rows="4" cols="120" wrap="off">
1	2547		หจก.	กองเกตุเอ๊กซ์เปรส	20	11	2551	8/1 ม.2 แขวงทุ่งครุ 	ทุ่งครุ	กรุงเทพฯ			17		14			3						1		3
2	2547		หจก.	ดาวคะนองการท่องเที่ยว	5	1	2552	10/223 ม.4 แขวงดินแดง	ห้วยขวาง	กรุงเทพฯ			2		2											3
3	2547		บจ.	ธรรมนูญ โพธิ์ทอง	5	1	2552	1407/6 ซ.ตากสิน 7 ถ.สมเด็จพระเจ้าตากสิน แขวงบุคคโล	สายไหม	กรุงเทพฯ			4		2					2						3
4	2547		บจ.	นิติพงษ์ ไพบูลย์ทรานสปอร์ต	6	1	2552	15/20 ถ.นวลจันทร์ แขวงคลองกุ่ม	สายไหม	กรุงเทพฯ			1						1							3
5	2547		นาย	บางแคการท่องเที่ยว	6	1	2552	209/718 ม.ปรีชา 8 ถ.รามคำแหง แขวงหัวหมาก	สะพานสูง	กรุงเทพฯ			1											1		3
6	2547		นาย	ผาน  ตอลบรัมย์	6	1	2552	4/33 ม.6 แขวงสายไหม 	สวนหลวง	กรุงเทพฯ			1						1							3
7	2547		บจ.	วิจิตรประกอบ	7	1	2552	25 ซ.อ่อนนุช 10 ถ.อ่อนนุช แขวงสวนหลวง	ลาดพร้าว	กรุงเทพฯ		02-2743222-3	3		3											3
8	2547		หจก.	สตาร์แปซิฟิคทรานสปอร์ต	26	1	2552	41/9 ม.9 ถ.วิภาวดีรังสิต แขวงสีกัน 	บึงกุ่ม	กรุงเทพฯ			21		1					19	1					3
9	2547		นาย	สมนึก ผลดีนานา	12	1	2552	43 ซ.บรมราชชนนี 14 ถ.บรมราชชนนี แขวงบางบำหรุ 	บางพลัด	กรุงเทพฯ			1							1						3
10	2547		บจ.	สวัสดิภาพทัวร์	13	1	2552	44/73 ม.7 แขวงลาดพร้าว 	บางกะปิ	กรุงเทพฯ			2											2		3
11	2547		นาย	สุชาติ ภรมงคลธรรม	13	1	2552	52/4 ม.13 ถ.กรุงเทพกรีฑา แขวงสะพานสูง	บางกะปิ	กรุงเทพฯ			1											1		3
12	2547		นาย	เสวกทัวร์	13	1	2552	55 ม.9 ซ.ปรีชา แขวงฉิมพลี	ธนบุรี	กรุงเทพฯ			1							1						3
13	2547		หจก.	ไสว วรรณรังสี	24	1	2552	55/4 ม.3 ซ.ประชาอุทิศ 76 ถ.ประชาอุทิศ	แขวงทุ่งครุ	กรุงเทพฯ			10							10						3
</textarea>
</td></tr></table>
<table style="background-color:black;border-spacing:5px;text-align:center;width:760px;margin-left:auto;margin-right:auto;"><tr>
<td bgcolor="white" align="center"><input type="submit" value="listall" name="action" style="width:60px;background-color:#ffdddd;">
เริ่ม <input name="begin" value="0" size="1">
จำนวน <input name="total" value="100" size="2">
</td>
<td style="background-color:white;text-align:center;">
<input type="submit" value="findname" name="action"><input name="name" value="หจก." size="3" style="width:60px;background-color:#ffddff;">
</td>
<td style="background-color:white;text-align:center;">
<input type="submit" value="deleterecord" name="action" style="width:100px;background-color:#ddddff;">
<input name="did" value="1" size="1"><input name="dyear" value="2547" size="4">
</td>
<td style="background-color:white;text-align:center;">
<input type="submit" value="deletetable" name="action" style="width:100px;background-color:red;color:white;">
</td></tr>
<?php } ?>
</table>
</form>

<!-- Section 3 : Activity -->
<table style="background-color:gray;width:760px;margin-left:auto;margin-right:auto;">
<tr><td style="background-color:white;">
<?php
### Start of 10 Activity ###
if (isset($_POST{'action'})) {
###########################
# 1 # create table InnoDB
###########################
if ($_POST{'action'} == "Create table InnoDB") {  
  $field_ar=array("f1 CHAR(100)");
  for ($i=2;$i<=27;$i++) array_push($field_ar, "f" . $i . " CHAR(100)");
  $q_field = join(",",$field_ar);
  $query = "CREATE TABLE $tb (" . $q_field;
  $query .= ") engine = InnoDB default charset=utf8 collate=utf8_unicode_ci;";
  echo $query."<br/>";
  if ($connect->query($query) === TRUE) echo "process : completely<br/>"; else { echo "error to create table<br/>"; exit; }
  echo "<meta http-equiv='refresh' content=\"3;URL='mysqlworking.php'\" />";
  exit;
}
###########################
# 2 # create table MyISAM
###########################
if ($_POST{'action'} == "Create table MyISAM") {
  $query = "CREATE TABLE $tb (";
  for ($i=1;$i<=26;$i++) $query = $query . "f" . $i . " CHAR(100),";
  $query .= "f27 CHAR(100)";
  $query .= ")  ENGINE = MyISAM DEFAULT CHARSET=utf8 DEFAULT COLLATE utf8_unicode_ci;";
  echo $query."<br/>";
  if ($connect->query($query) === TRUE) echo "process : completely<br/>"; else { echo "error to create table<br/>"; exit; }
  echo "<meta http-equiv='refresh' content=\"3;URL='mysqlworking.php'\" />";
  exit;
}
###########################
# 3 # delete table
###########################
if ($_POST{'action'} == "deletetable") {
  $query = "drop table $tb;";
  if ($connect->query($query) === TRUE) echo "process : completely<br/>"; else { echo "table remove : error<br/>$query"; exit; }
  echo "<meta http-equiv='refresh' content=\"3;URL='mysqlworking.php'\" />";    
  exit;
}
###########################
# 4 # search from keyword
###########################
if ($_POST{'action'} == "findname") {
  if(strlen($_POST{'name'}) > 1) {
    # SQL Injection Protection
    $unsafe = $_POST['name'];
    $safe_step1 = $connect->real_escape_string($unsafe); // for ' or 1=1 or '
    $unwanted_word = array("'", "or", ";","=","_"); 
    $removebyblank = '';
    $safe_step2 = str_replace($unwanted_word, $removebyblank, $safe_step1);
    # ส่วนนี้มีความอ่อนแอ (vulnerability) ที่ยังไม่ได้รับการป้องกัน
    # ถูกโจมตีได้ด้วย SQL Injection for test ' or 1=1 or ' หรือ ___  
    # การค้นหานี้ใช้ % เพื่อใช้ค้นหาจากคำขึ้นต้น แล้วต่อท้ายด้วยอะไรก็ได้ คล้ายกับ * ใน DOS เช่น dir AN*.lnk จะพบ ANT.lnk และ AND.lnk
    # การค้นด้วย _ ใน like หมายถึงตัวอักษรอะไรก็ได้ คล้ายกับ ? ใน DOS เช่น dir AN?.lnk จะพบ ANT.lnk
    if(!$protect_sql_injection) {
      $query    = "select * from $tb where f4 like '". $_POST{'name'} ."%'"; 
    } else {
      $query    = "select * from $tb where f4 like '". $safe_step2 ."%'";
    }
    if(!$protect_sql_injection || $safe_step1 == $safe_step2) {
      $result = $connect->query($query); 
      if ($result === FALSE) { echo "Finding : error<br/>$query"; exit;}
      while ($object = $result->fetch_object()) {
        foreach ($object as $o) echo $o . " ";
        # sample : echo $object->f26 . "  " . $object->f27;
        echo '<hr color=gray />';
      } 
    } else {
      echo '<b>Error</b> : found unwanted character';
    }
  } else {
    echo '<b>Error</b> : Keyword required > 1 character';
  }
}
###########################
# 5 # delete record
###########################
if ($_POST{'action'} == "deleterecord") {
  $query    = "delete from $tb where f1 = '". $_POST{'did'}."' and f2 = '". $_POST{'dyear'}."'";
  $result = $connect->query($query); 
  $cnt_result = $connect->affected_rows;
  if ($result === TRUE) echo "delete : ". $cnt_result ." records<br/>"; else { echo "delete : error<br/>$query"; }
}
###########################
# 6 # list all records
###########################
if ($_POST{'action'} == "listall") {
  $query    = "select * from $tb limit " . $_POST{'begin'}  . "," . $_POST{'total'} ;
  $result = $connect->query($query); 
  if ($result === FALSE) { echo "listing : error<br/>$query"; exit;}
  echo "<ol start=" . ($_POST{'begin'} + 1) . ">";
  while ($object = $result->fetch_object()) {
    echo "<li>";
    foreach ($object as $o) echo "$o ";
  }
  echo "</ol>";
}
###########################
# 7 # post records
###########################
if ($_POST{'action'} == "postmany") {
  $getline = explode("\r\n",$_POST{'manyrecord'});
  for ($j=0;$j<count($getline);$j++) {
    $l = $j + 1;
    $getfield = explode("\t",$getline[$j]);   
    # echo "$l $getfield[0] - $getfield[26]<br/>";
  }
  if ($connect) {
    echo "post from textarea : completely<br/>";
    for ($j=0;$j<count($getline);$j++) {
      if (strlen($getline[$j]) > 1) {
        $l = $j + 1;
        $getfield = explode("\t",$getline[$j]);
        $field_ar=array("'$getfield[0]'");
        for ($i=1;$i<=26;$i++) array_push($field_ar, "'$getfield[$i]'");
        $q_field = join(",",$field_ar);
        $query = "insert into $tb values(". $q_field .");";
        echo $query."<br/>";
        $result = $connect->query($query);
      }
    }  
  } else {
    echo "connect : fail"; 
  }
}
###########################
# 8 # post 1000
###########################
if ($_POST{'action'} == "post 1000") {
  if ($connect) {
    echo "Post 1000 : completely";
    for ($j=0;$j<1000;$j++) {
      if(!function_exists("iconv")) {
        $c1 = chr(rand(65,91));
        $c2 = chr(rand(65,91));
        $c3 = chr(rand(65,91));
      } else { //phpversion()
        $c1 = iconv("TIS-620","UTF-8",chr(rand(161,206))); // 196 = ฤ ทำให้มี 45 ตัว
        $c2 = iconv("TIS-620","UTF-8",chr(rand(161,206)));
        $c3 = iconv("TIS-620","UTF-8",chr(rand(161,206)));
      }
      // https://www.ireallyhost.com/kb/other/173
      $query = "insert into $tb (f1,f2,f4) values( $j , $j, '" . $c1.$c2.$c3 . "');";
      // insert into $tb (f4) values('" . chr(161) . "') ภาษาไทยมีปัญหา แบบนี้ใช้ไม่ได้ใน MySQL เพราะไม่เป็น UTF8
      $result = $connect->query($query);
    }
  } else {
    echo "connect : fail"; 
  }
}
// echo iconv("TIS-620","UTF-8",chr(161)); // output = ก
// echo ord(iconv("UTF-8","TIS-620","ก")); // output = 161
###########################
# 9 # post_recs
###########################
if ($_POST{'action'} == "post_recs") {
  if ($connect) {
    echo "Post " . $_POST{'recs'} ." : completely";
    // echo "iconv:" . function_exists("iconv"); // 000webhosting.com จะ return 1 กลับมา
    for ($j=0;$j<$_POST{'recs'};$j++) {
      if(!function_exists("iconv")) { // ป้องกันการเรียกใช้ iconv ที่ 5GBFree.com
        $c1 = chr(rand(65,91));
        $c2 = chr(rand(65,91));
        $c3 = chr(rand(65,91));
      } else {
        $c1 = iconv("TIS-620","UTF-8",chr(rand(65,91))); // ที่ 5GBFree.com หากเรียกใช้ iconv จะหยุดการทำงาน
        $c2 = iconv("TIS-620","UTF-8",chr(rand(65,91))); // ตรวจสอบการ support ของ iconv ด้วย phpinfo() ได้
        $c3 = iconv("TIS-620","UTF-8",chr(rand(65,91)));
      }
      $query = "insert into $tb (f1,f2, f4) values( $j , $j, '" . $c1.$c2.$c3 . "');";
      $result = $connect->query($query);
    }  
  } else {
    echo "connect : fail"; 
  }
}
###########################
# 10 # Total records
###########################
$query = "select * from $tb";
$result = $connect->query($query);
echo "<hr style='display:block;height:1px;border:0;border-top:1px solid#ccc;margin:1em0;padding:0;' />
Total records : ". $result->num_rows;
mysqli_free_result($result);
$connect->close();

### Stop of 10 Activity ###
} // end of isset : action from post
?>
</td></tr></table>

<!-- Section 4 : Introduction -->
<table style="margin-left:auto;margin-right:auto;width:760px;border-width:5px;border-style:solid;">
<tr><td style="background-color:#ddffdd;">
<fieldset><legend><b>Suggestion about this script</b></legend>
<ol>
<li>กำหนดชื่อฐานข้อมูลให้กับตัวแปร <font color="red">$db</font> ให้ตรงกับที่มีในระบบฐานข้อมูล MySQL หรือ MariaDB
<br/>ที่กำหนดไว้คือ [mysql] เพราะเป็น Default database  ถ้าใช้งานจริงก็ต้องสร้าง database ของตนเอง</li>
<li>เปลี่ยนค่าของตัวแปร <font color="red">$user และ $password</font> ให้ตรงกับรหัสผู้ใช้ที่เข้าใช้งาน MySQL ได้</li>
<li>กดปุ่ม Create table เพื่อสร้างตารางชื่อ car ในฐานข้อมูล [mysql]</li>
<li>หลังสร้างตารางแล้ว ก็กดปุ่ม postmany เพื่อสร้างข้อมูล จะได้มีข้อมูลไว้ใช้ทดสอบ</li>
<li>ถ้าทดสอบการใช้งานด้วยค่า default ได้แล้ว ก็ควรสร้าง database, table ขึ้นมาใช้งานเอง</li>
<li>ปกติจะกำหนด max time ที่ 30 seconds ใน code จะขยายเวลาเป็น 24 ชั่วโมง รองรับ insert 1000</li>
<li>ถ้ามีปัญหาภาษาไทยต้องใช้ Editor ปรับ file encoding = UTF-8</li>
<li>ถ้าไม่กำหนด Engine ให้ DB จะสร้างเป็น InnoDB ซึ่ง insert record จะตอบสนองช้าเมื่อเทียบกับ MyISAM</li>
<?php if($phpinfo_function_allow) { ?>
<li>เรียกใช้ <a href="?action=phpinfo">phpinfo()</a> เพื่อดูค่าต่าง ๆ ของ server เช่น version ของ php หรือ mysql
<?php } ?>
</ol>
</fieldset>
</td></tr>
<tr><td style="background-color:white;">
<?php
$demo = array("http://thaiabc.ueuo.com/",
"http://thaiabc.000webhostapp.com/mysqlworking.php",
"http://thaiabc.5gbfree.com/mysqlworking.php",
"http://thaiabc.byethost22.com/mysqlworking.php",
"http://thaiabc.atwebpages.com/mysqlworking.php");
for($demo_no=0;$demo_no<count($demo);$demo_no++) {
  echo "<b>Demo site</b> : <a href='$demo[$demo_no]'>$demo[$demo_no]</a><br/>";
}
list($u_start,$s_start) = explode(" ",$start);  
list($u_stop,$s_stop) = explode(" ",microtime());  
$tstart = $u_start + $s_start;
$tstop = $u_stop + $s_stop;
echo "Page loading in " . ($tstop - $tstart) . " seconds";
?>
</td></tr></table>
</body></html>
จำนวน : 347 บรรทัด
าษาเฮชทีเอ็มแอล (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
Thaiall.com