เขียน PHP เพิ่มข้อมูล MySQL

สวัสดีครับสำหรับใครที่ต้องทำโปรแกรม หรือเว็บไซต์ด้วย PHP (ที่จริงจะใช้ ASP.NET , JSP หรืออื่นๆ ก็ได้นะ) แล้วต้องใช้งานร่วมกับ ฐานข้อมูล MySQL หนึ่งในพื้นฐานที่สำคัญ ก็คือการ เพิ่มข้อมูลลงฐานข้อมูล เอาล่ะครับมาดูกันดีกว่า ว่าถ้าเราต้องการเพิ่มข้อมูลลงในตาราง จะต้องใช้ Query หรือ SQL แบบไหนครับ ^^

คำสั่ง SQL ในการเพิ่มข้อมูล

รูปแบบที่ 1 : ไม่กำหนดชื่อฟิลด์

INSERT INTO ชื่อตาราง
VALUES ('ค่า_1','ค่า_2',...,'ค่า_n');

รูปแบบที่ 2 : กำหนดชื่อฟิลด์

INSERT INTO ชื่อตาราง (ฟิลด์_1,ฟิลด์_2,...,ฟิลด์_n)
VALUSE ('ค่า_1','ค่า_2',...,'ค่า_n');

ตัวอย่างการใช้งาน

ตัวอย่างที่ 1

ต้องการเพิ่มข้อมูลของพนักงาน รหัส a0001 นาย โชคดี มีชัย อายุ 28 ปี เพศชาย ลงในตารางชื่อ employee

INSERT INTO employee
VALUES ('a0001','นาย','โชคดี','มีชัย','28','ชาย');

ตัวอย่างที่ 2

ต้องการเพิ่มข้อมูลของพนักงาน รหัส a0001 นาย โชคดี มีชัย อายุ 28 ปี เพศชาย ลงในตารางชื่อ employee

INSERT INTO employee ('employeeid','title','name','surname','age','gender')
VALUES ('a0001','นาย','โชคดี','มีชัย','28','ชาย');

เป็นยังไงบ้างครับ ไม่ยากเลย ลองนำไปใช้ดูนะครับ จะใช้ใน Tool PHPMYADMIN ลองทดสอบดูก็ได้นะครับ จำและหัดนำไปใช้ให้คล่องนะครับ เพราะเราต้องนำ SQL นี้ ไปเขียนในโปรแกรมหรือเว็บไซต์ ของเรานั่นเองครับ ^^


Insert Data Into MySQL Using MySQLi and PDO

After a database and a table have been created, we can start adding data in them.

Here are some syntax rules to follow:

  • The SQL query must be quoted in PHP
  • String values inside the SQL query must be quoted
  • Numeric values must not be quoted
  • The word NULL must not be quoted

The INSERT INTO statement is used to add new records to a MySQL table:

INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)

To learn more about SQL, please visit our SQL tutorial.

In the previous chapter we created an empty table named "MyGuests" with five columns: "id", "firstname", "lastname", "email" and "reg_date". Now, let us fill the table with data.

Note: If a column is AUTO_INCREMENT (like the "id" column) or TIMESTAMP with default update of current_timesamp (like the "reg_date" column), it is no need to be specified in the SQL query; MySQL will automatically add the value.

The following examples add a new record to the "MyGuests" table:

Example (MySQLi Object-oriented)

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', '')";

if ($conn->query($sql) === TRUE) {
  echo "New record created successfully";
} else {
  echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>




Example (MySQLi Procedural)

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', '')";

if (mysqli_query($conn, $sql)) {
  echo "New record created successfully";
} else {
  echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?>


Example (PDO)

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
  $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  // set the PDO error mode to exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $sql = "INSERT INTO MyGuests (firstname, lastname, email)
  VALUES ('John', 'Doe', '')";
  // use exec() because no results are returned
  $conn->exec($sql);
  echo "New record created successfully";
} catch(PDOException $e) {
  echo $sql . "<br>" . $e->getMessage();
}

$conn = null;
?>