PHP อัปโหลดรูป ลงฐานข้อมูล MySQL บทความนี้สอนการเขียนโค้ดให้ผู้ใช้งานเลือกไฟล์ และอัปโหลดรูปที่เลือกลงฐานข้อมูล MySQL โดยจะมีการเก็บชื่อไฟล์ที่ถูกอัปโหลดลงในตาราง test สามารถเขียนโปรแกรมได้ดังนี้
ตัวอย่าง ตารางชื่อ test ประกอบด้วย column id และ file
+-------+-----------+
| Field | Type |
+-------+-----------+
| id | int(11) |
| file | char(255) |
+-------+-----------+
ตัวอย่าง PHP อัปโหลดรูป ลงฐานข้อมูล MySQL
<form action="<?=$_SERVER['PHP_SELF'];?>" method="POST" enctype="multipart/form-data">
กรุณาเลือกไฟล์รูปภาพ <input type="file" name="image" accept="image/png, image/gif, image/jpeg"><br/>
<input type="submit" value="อัปโหลดไฟล์รูปภาพ">
</form>
<?php
isset( $_FILES['image']['tmp_name'] ) ? $image_tmp_name = $_FILES['image']['tmp_name'] : $image_tmp_name = "";
isset( $_FILES['image']['name'] ) ? $image_name = $_FILES['image']['name'] : $image_name = "";
if( !empty( $image_tmp_name ) && !empty( $image_name ) ) {
if( move_uploaded_file( $image_tmp_name, $image_name ) ) {
$c = mysqli_connect( "localhost", "root", "", "demo" );
$sql = " INSERT INTO test (id, file) VALUE (NULL, '{$image_name}') ";
$q = mysqli_query( $c, $sql );
mysqli_close( $c );
if( $q ) {
echo "อัปโหลดรูปภาพลงฐานข้อมูลเรียบร้อย";
}
}
}
?>
ผลลัพธ์
อัปโหลดรูปภาพลงฐานข้อมูลเรียบร้อย
1. PHP อัปโหลดรูป ลงฐานข้อมูล MySQL สร้างฟอร์มร่วมกับ input file ตัวแปรชื่อ image โดยกำหนด attribute accept ให้รองรับเฉพาะไฟล์รูปภาพเท่านั้น
2. เมื่อผู้ใช้งานเลือกรูปภาพ และกดปุ่ม submit ตัวแปร image จะถูกส่งมาที่ PHP โดยจะมีการรับค่าตัวแปร และสร้างตัวแปรเพิ่มขึ้นมา 2 ตัว คือ image_tmp_name และ image_name
3. ตัวแปร image_tmp_name เก็บตำแหน่งที่อยู่ของรูปภาพที่จะอัปโหลด ส่วนตัวแปร image_name เก็บชื่อรูปภาพที่จะอัปโหลด
4. ใช้คำสั่ง move_uploaded_file เพื่ออัปโหลดรูปภาพเข้า Server
5. เชื่อมต่อกับฐานข้อมูล demo และใช้คำสั่ง INSERT INTO เพื่อบันทึกชื่อรูปภาพลงในตาราง test
6. กรณีอัปโหลดรูปภาพ และบันทึกข้อมูลเรียบร้อยจะแสดงข้อความว่า "อัปโหลดรูปภาพลงฐานข้อมูลเรียบร้อย"