ลงทะเบียน
ใกล้กัน ช่วยให้คุณแชร์เรื่องราวต่างๆ กับผู้คนมากมาย

คำสั่ง MySQL ที่ใช้บ่อย ร่วมกับ PHP 5.2

คำสั่ง MySQL ที่ใช้บ่อย ร่วมกับ PHP 5.2

โพสต์ใน: เว็บไซต์ / - โดย - May 29, 2020

 รวมคำสั่ง MySQL ที่ใช้บ่อยสุด ช่วยให้ทำงานได้สะดวก และรวดเร็วขึ้น

 

การใส่ประเภทของข้อมูลที่เป็น ละติจูดและลองจิจูด (Latitude, Longitude)

แนะนำให้ระบุเป็นประเภท Decimal: 11,8

 

 

 

 

คำสั่ง SQL เปลี่ยนชื่อตาราง

RENAME TABLE `user_registers` TO `user_registers_backup`;

 

MySQL 5.5 ให้ส่งออกข้อมูลแบบ JSON มีวิธีเดียวที่จะฟอร์แมตข้อมูลเป็น JSON คือฟังค์ชั่น CONCAT ร่วมกับ GROUP_CONCAT

หมายเหตุ: ต้องใช้ฟังค์ชั่น IFNULL เพื่อตรวจค่าแต่ละคอลั่มท์ด้วย เพราะหากคอลั่ม์ใดมีค่าเป็น NULL จะเกิด Error ทำให้ข้อมูลทั้งจะว่างเปล่าทันที

 

สำหรับ MySQL v5.5 ไม่รองรับการ Query ข้อมูล JSON 

ข้อจำกัด: ข้อมูลไม่เกิน 1,000 ตัวอักษร ส่วนที่เกินจะถูกตัดทิ้ง 

แนะนำ: ให้ Query ข้อมูลและใช้ฟังค์ชั่น json_encode ของ PHP จะดีที่สุด

SELECT
  CONCAT (
    '['
    , GROUP_CONCAT (
      CONCAT (
        '{'
        , '"AnswerID":"'
        , IFNULL (Qaa.`AnswerID`, '')
        , '",'
        , '"OptionID":"'
        , IFNULL (Qaa.`OptionID`, '')
        , '",'
        , '"Agree":"'
        , IFNULL (Qaa.`Agree`, '')
        , '",'
        , '"DateCreate":"'
        , IFNULL (Qaa.`DateCreate`, '')
        , '"'
        , '}'
      )
    )
    , ']'
  ) json
FROM
  `admin_tafdb`.`qa_useranswer` AS Qaa
GROUP BY Qaa.`UserID`
LIMIT 0, 1000;

 

ตัวอย่างผลลัพท์ข้อมูลที่ได้

 

หมายเหตุ: 

MySQL 5.7 หรือมากกว่าจะมีฟังค์ชั่นจัดการข้อมูล JSON ในตัว หรือหากเป็น SQL Server จะมีฟังค์ FOR JSON PATH ให้ใช้

อ่านเพิ่มเติมที่: https://www.sitepoint.com/use-json-data-fields-mysql-databases/

  

วิธีแก้ MySQL ตัวอักษร Unicode เพี้ยนอ่านไม่ออก เช่น ??? ให้เพิ่มคำสั่งด้านล่างนี้

mysql_query("SET NAMES 'UTF8'");

 

MySQL วิธีแสดง Auto Increment หรือ Last index ID ของตารางข้อมูลล่าสุด มี 2 วิธีเท่านั้น

1. ใช้คำสั่ง SELECT MAX(ID) และนำไปบวก 1 เพื่อให้เราทราบ Auto increment ซึ่งเป็น Primary Key อันถัดไป บ่อยครั้งจะนำค่านี้ไปอ้างอิงฐานข้อมูลหลัก

SELECT
  MAX( `GpsID` ) AS GpsID
FROM
  `gps_location`
LIMIT 1
;

 

2. SELECT LAST_INSERT_ID(); 

INSERT INTO table_name (col1, col2,...) VALUES ('val1', 'val2'...);
SELECT LAST_INSERT_ID();

https://stackoverflow.com/questions/17112852/get-the-new-record-primary-key-id-from-mysql-insert-query

 

วิธีใช้: เริ่มต้นด้วย include และ สร้าง Class ดังนี้

include ("mysql_inc.php");

var $mysql = new my_database;

จากนั้นนำ $mysql ไปใช้ต่อได้เลย

เช่น $mysql->mquery("SQL QUERY");

สร้างไฟล์ mysql_inc.php

if ( !defined( "DB_DATABASE_NAME" ) ) {
  define( "DB_DATABASE_NAME", "[ชื่อฐานข้อมูล]" );
}
if ( !defined( "DB_HOST" ) ) {
  define( "DB_HOST", "localhost" );
}

define( "DB_USER", "[USERNAME_DB]" );
define( "DB_PASSWORD", "USERNAME_PASS]" );

if ( !defined( "DB_FONT" ) ) {
  define( "DB_FONT", "utf8" );
}

class my_database {
  var $Conn;

  function mconnect() {
    $this->Conn = mysql_connect( DB_HOST, DB_USER, DB_PASSWORD );
    $this->setfont();
  }

  function errstring() {
    return "Error: (" . mysql_errno( $this->Conn ) . ") " .
    mysql_error( $this->Conn );
  }

  function mquery( $result ) {
    return mysql_query( $result, $this->Conn );
  }

  function mnum_rows( $result ) {
    return mysql_num_rows( $result );
  }

  function mfetch_array( $result ) {
    return mysql_fetch_array( $result );
  }

  function mfetch_row( $result ) {
    return mysql_fetch_row( $result );
  }

  function mfetch_asccoc( $result ) {
    return mysql_fetch_assoc( $result );
  }

  function mfetch_object( $result ) {
    return mysql_fetch_object( $result );
  }

  function mfree_result( $result ) {
    return mysql_free_result( $result );
  }

  function mdata_seek( $result, $row_number ) {
    return mysql_data_seek( $result, $row_number );
  }

  function maffected_rows() {
    return mysql_affected_rows( $this->Conn );
  }

  function setfont( $front = "" ) {
    $front = ( $front != "" ) ? $front : DB_FONT;
    @mysql_query( "SET CHARACTER SET " . $front, $this->Conn );
    @mysql_query( "SET NAMES '" . $front . "'", $this->Conn );
  }

  function mselect_db() {
    return @mysql_select_db( DB_DATABASE_NAME, $this->Conn );
  }

  function mclose() {
    return @mysql_close( $this->Conn );
  }
}
เขียนเว็บไซต์

User not write anything about he.
Captcha Challenge
ลองรูปภาพใหม่
Type in the verification code above

ลองอ่านดูน่าสนใจ: