การเพิ่มข้อมูลจากแบบฟอร์มไปยัง mysql การเพิ่มรูปภาพลงในฐานข้อมูล MySQL ผ่าน PHP การเข้าสู่ฐานข้อมูล mySQL ของ PHP ตัวอย่างการปฏิบัติ

ในโพสต์นี้ฉันอยากจะบอกคุณว่า วิธีการถ่ายโอนข้อมูลที่ป้อนลงในแบบฟอร์มไปยังฐานข้อมูล- ดังนั้นเราจึงสร้างแบบฟอร์มง่ายๆ โดยเราจะมีสองฟิลด์: ชื่อผู้ใช้และอีเมลของเขา:

ชื่อของคุณ:
อีเมลของคุณ:


แบบฟอร์มนี้สามารถใช้เพื่อลงทะเบียนผู้ใช้ใหม่ ส่งข่าวสาร รวบรวมสถิติ หรือเพื่ออะไรก็ได้... โดยทั่วไปผู้ใช้จะป้อนข้อมูลลงในแบบฟอร์มนี้ ชื่อและอีเมล คลิกที่ปุ่ม จากนั้นข้อมูล เข้าสู่สคริปต์ PHP:

$name = $_POST["ชื่อ"]; $อีเมล = $_POST["อีเมล"]; $result = mysqli_query("INSERT INTO user (ชื่อ, อีเมล) VALUES ("$name", "$email")"); if ($result) ( echo "บันทึกข้อมูลเรียบร้อยแล้ว!"; ) else ( echo "เกิดข้อผิดพลาด โปรดลองอีกครั้ง"; )


เกิดอะไรขึ้นในสคริปต์นี้? มาคิดกันตอนนี้!
ข้อมูลที่กรอกลงในแบบฟอร์มจะถูกถ่ายโอนโดยใช้วิธี POST ไปยังสคริปต์ php (ซึ่งเขียนไว้ด้านบน) และใช้อาร์เรย์ส่วนกลาง $_POST ข้อมูลจะถูกสร้างขึ้นเป็นตัวแปร $name และ $email:

$name = $_POST["ชื่อ"]; $อีเมล = $_POST["อีเมล"];


หลังจากที่ตัวแปรพร้อมที่จะป้อนลงในฐานข้อมูลแล้ว เราก็สร้างคำขอ แต่ก่อนอื่น สคริปต์ของคุณจะต้องเชื่อมต่อกับฐานข้อมูลอยู่แล้ว ฉันเขียนไว้ในกระทู้นี้ว่าจะเชื่อมต่อกับฐานข้อมูลอย่างไร: .คำขอมีลักษณะดังนี้:

$result = mysqli_query("INSERT INTO user (ชื่อ, อีเมล) VALUES ("$name", "$email")");


ในโค้ดนี้ เราได้ระบุว่าตัวแปรต่อไปนี้จะถูกเพิ่มลงในเซลล์ชื่อและอีเมลที่อยู่ในตารางผู้ใช้: $name และ $email
ต่อไปหากทุกอย่างเป็นไปด้วยดีเราจะได้รับข้อความจากเงื่อนไข:

บันทึกข้อมูลเรียบร้อยแล้ว!


หากเกิดปัญหาใดๆ และไม่ได้ป้อนข้อมูล เราจะได้รับข้อความแสดงข้อผิดพลาด:

เกิดข้อผิดพลาด โปรดลองอีกครั้ง


แค่นั้นแหละ!

*** *** *** *** ***

หากต้องการคุณสามารถเพิ่มช่องสำหรับการป้อนข้อมูลได้ เช่น เราจำเป็นต้องเพิ่มช่องสำหรับป้อนเมืองของผู้ใช้ เรามีสคริปต์สำเร็จรูปอยู่แล้ว (เขียนไว้ด้านบน) ตอนนี้เราจะเพิ่มฟิลด์ลงไป เมืองของคุณลองเรียกตัวแปร: $city และอื่นๆ ในรูปแบบการป้อนข้อมูล หลังจาก:

อีเมลของคุณ:


เพิ่ม:

เมืองของคุณ:


ในสคริปต์ php หลังจาก:

$อีเมล = $_POST["อีเมล"];


เพิ่ม:

$เมือง = $_POST["เมือง"];


และแน่นอนว่าเราได้เพิ่มเข้าไปในคำขอด้วยเช่นกัน เช่นนี้

$result = mysqli_query("INSERT INTO user (name, email, city) VALUES ("$name", "$email", "$city")");


นี่คือสิ่งที่คุณควรจะได้:
แบบฟอร์มการป้อนข้อมูล:

ชื่อของคุณ:
อีเมลของคุณ:
เมืองของคุณ:


สคริปต์:

$name = $_POST["ชื่อ"]; $อีเมล์ = $_POST["อีเมล"]; $เมือง = $_POST["เมือง"]; $result = mysqli_query("INSERT INTO user (name, email, city) VALUES ("$name", "$email", "$city")"); if ($result == true) ( ​​​​echo "บันทึกข้อมูลเรียบร้อยแล้ว!"; ) else ( echo "เกิดข้อผิดพลาด โปรดลองอีกครั้ง"; )


อย่างที่คุณเห็นไม่มีอะไรซับซ้อน! หากจำเป็น คุณสามารถเพิ่มฟิลด์อื่น และอีกฟิลด์หนึ่ง และอีกฟิลด์...

คู่มือนี้จะแสดงวิธีเริ่มจัดการฐานข้อมูลจากของคุณ PHPสคริปต์ คุณจะเรียน การเพิ่มบันทึกลงในตาราง MySQLโดยใช้ รหัสพีเอชพี- ก่อนที่คุณจะเริ่มต้น โปรดดูบทช่วยสอนอื่นๆ ของเราที่ครอบคลุมขั้นตอนพื้นฐานของการทำงานกับ PHP และฐานข้อมูล - การเชื่อมต่อจาก PHP ไปยังฐานข้อมูล MySQL

ก่อนที่คุณจะเริ่มต้น ให้ตรวจสอบสิ่งต่อไปนี้:

  • เข้าถึงแผงควบคุมโฮสติ้งของคุณ

ขั้นตอนที่ 1 - การสร้างตาราง

ก่อนอื่น เราต้องสร้างตารางสำหรับข้อมูลของคุณ นี่เป็นขั้นตอนง่ายๆ ที่คุณสามารถทำได้ phpMyAdminจากแผงควบคุมโฮสติ้งของคุณ เราได้กล่าวถึงกระบวนการสร้างฐานข้อมูล MySQL ในบทช่วยสอนก่อนหน้านี้แล้ว ดังนั้นเราจะข้ามส่วนนั้นไปที่นี่

หลังจากเข้าสู่หน้า phpMyAdmin แล้ว คุณจะเห็นภาพดังนี้:

มาสร้างตารางด้วยชื่อกัน นักเรียนสำหรับฐานข้อมูลของเรา u266072517_ชื่อ- คุณสามารถสร้างตารางใหม่ได้โดยใช้ปุ่ม สร้างตาราง- หลังจากนี้ คุณจะเห็นหน้าใหม่ที่คุณสามารถป้อนข้อมูลที่จำเป็นทั้งหมดสำหรับตารางของคุณได้:

นี่เป็นวิธีที่ง่ายที่สุดในการสร้างตาราง สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโครงสร้างตาราง/ฐานข้อมูล และการตั้งค่าที่สามารถใช้สำหรับแต่ละฟิลด์ โปรดดูที่เอกสารอย่างเป็นทางการของ phpMyAdmin

ต่อไปนี้เป็นคำอธิบายง่ายๆ เกี่ยวกับฟิลด์ที่เราจะใช้:

  • ชื่อคือชื่อเขตข้อมูลของคุณ จะปรากฏที่ด้านบนสุดของตารางของคุณ
  • พิมพ์– ที่นี่คุณสามารถตั้งค่าประเภทฟิลด์ได้ เช่น เราเลือก วาร์ชาร์เพราะที่นี่เราต้องป้อนสตริงที่มีชื่อ (ซึ่งมีตัวอักษร ไม่ใช่ตัวเลข)
  • ความยาว/ค่า– ใช้เพื่อกำหนดความยาวสูงสุดของรายการของคุณในฟิลด์นี้
  • ดัชนี– เราใช้ดัชนี “หลัก” สำหรับช่อง “ID” ของเรา เมื่อสร้างตาราง ขอแนะนำให้มีช่อง ID หนึ่งช่อง ใช้เพื่อสร้างดัชนีบันทึกในตารางเมื่อมีการกำหนดค่าความสัมพันธ์ระหว่างตาราง นอกจากนี้ยังสามารถสังเกตได้ที่นี่ "AI"ซึ่งหมายความว่า เพิ่มขึ้นอัตโนมัติ- การตั้งค่านี้จะเพิ่มดัชนีโดยอัตโนมัติ (1,2,3,4...)

คลิก บันทึกและตารางของคุณจะถูกสร้างขึ้น

ขั้นตอนที่ 2 - สร้างโค้ด PHP และเพิ่มรายการลงในตาราง MySQL

ตัวเลือก 1 – วิธี MySQLi

ก่อนอื่น คุณต้องสร้างการเชื่อมต่อกับฐานข้อมูลตามบทช่วยสอนก่อนหน้าของเรา หลังจากนี้เราสามารถดำเนินการต่อด้วยแบบสอบถาม SQL เพื่อเพิ่มบันทึกลงในตาราง MySQL - แทรก- นี่คือตัวอย่างโค้ดที่สมบูรณ์พร้อมวิธีการเชื่อมต่อและการแทรก:

" . mysqli_error($conn); ) mysqli_close($conn); ?>

ดังนั้นส่วนแรกของโค้ด (lines 3 – 18 ) หมายถึงส่วนการสร้างการเชื่อมต่อฐานข้อมูล เราจะไม่พูดถึงส่วนนี้อีก หากคุณต้องการทราบว่าแต่ละบรรทัดหมายถึงอะไร โปรดดูคำแนะนำก่อนหน้าของเราเกี่ยวกับวิธีการเชื่อมต่อกับฐานข้อมูล

เริ่มจากบรรทัดกันก่อน 19 :

$sql = "INSERT INTO นักเรียน (ชื่อ นามสกุล อีเมล) ค่า ("Thom", "Vial", " [ป้องกันอีเมล]")";

นี่คือบรรทัดโค้ดที่สำคัญที่สุด โดยจะทำทุกอย่างที่เรากล่าวถึงในบทช่วยสอนนี้ - การเพิ่มบันทึกลงในตาราง MySQL ในฐานข้อมูล ใส่เข้าไปเป็นนิพจน์ที่เพิ่มบันทึกลงในตารางฐานข้อมูล MySQL ที่ระบุ ในตัวอย่างของเรา เรากำลังเพิ่มข้อมูลลงในตาราง นักเรียน.

ต่อไปในวงเล็บเรากำหนดเขตข้อมูลตารางที่เราจะเพิ่มค่า: (ชื่อ นามสกุล อีเมล)- ข้อมูลจะถูกเพิ่มตามลำดับเฉพาะ ถ้าเราเขียน (อีเมล นามสกุล ชื่อ)ค่าจะถูกเพิ่มในลำดับอื่น

ส่วนความหมายต่อไป ค่านิยม- ที่นี่เราตั้งค่าของเราในฟิลด์ที่ระบุก่อนหน้า ดังนั้นแต่ละฟิลด์ก็จะได้รับคุณค่าในตัวเอง ตัวอย่างเช่น ในกรณีของเรามันจะเป็นดังนี้: name = Thom, นามสกุล = Vial, email = [ป้องกันอีเมล] .

สิ่งสำคัญที่ควรทราบคือเรากำลังสร้างที่นี่ แบบสอบถาม SQLโดยใช้โค้ด PHP คำสั่ง SQL จะต้องอยู่ในเครื่องหมายคำพูด ในตัวอย่างของเรา ทุกอย่างระหว่างเครื่องหมายคำพูดและที่อยู่หลัง $sql = เป็นการสืบค้น SQL

ส่วนถัดไปของรหัส ( 20 – 22 lines) ดำเนินการคำขอของเราและตรวจสอบความสำเร็จของคำขอ:

If (mysqli_query($conn, $sql)) ( echo "สร้างบันทึกใหม่เรียบร้อยแล้ว"; )

ข้อความแสดงความสำเร็จจะปรากฏขึ้นหากแบบสอบถามทำงานอย่างถูกต้อง

และส่วนสุดท้าย ( 22 – 24 บรรทัด) แสดงข้อความอื่นในกรณีที่คำขอของเราล้มเหลว:

อื่น ๆ ( echo "ข้อผิดพลาด: " . $sql . "
" . mysqli_error($conn); )

รหัสนี้แสดงข้อความแสดงข้อผิดพลาดในกรณีที่มีสิ่งผิดปกติเกิดขึ้น

ตัวเลือก 2 - วิธีวัตถุข้อมูล PHP (P HP D ata O bject)

เช่นเดียวกับในตัวอย่างก่อนหน้านี้ ก่อนอื่นเราต้องเชื่อมต่อกับฐานข้อมูล ซึ่งจะทำเมื่อสร้างวัตถุ PDO ใหม่ - บทช่วยสอนก่อนหน้านี้พูดถึงว่าสิ่งนี้เกิดขึ้นได้อย่างไร เนื่องจากการเชื่อมต่อฐานข้อมูล MySQL เป็นวัตถุ PDO เราจึงต้องใช้ 'วิธีการ' ของ PDO ต่างๆ (ฟังก์ชันชนิดหนึ่งที่เป็นส่วนหนึ่งของวัตถุเฉพาะ) เพื่อเตรียมและเรียกใช้แบบสอบถาม วิธีการวัตถุถูกเรียกดังนี้:

$the_Object->the_Method();

PDO อนุญาตให้คุณ 'เตรียม' รหัส SQL ก่อนที่จะดำเนินการ แบบสอบถาม SQL ได้รับการประเมินและปรับเปลี่ยนก่อนที่จะรัน ดังนั้น การโจมตีแบบฉีด SQL แบบง่ายๆ สามารถทำได้โดยการกรอกโค้ด SQL ลงในฟิลด์แบบฟอร์ม ตัวอย่างเช่น:

// ผู้ใช้เขียนสิ่งนี้ในช่องชื่อผู้ใช้ของแบบฟอร์มการเข้าสู่ระบบ thom"; DROP DATABASE user_table; // แบบสอบถามสุดท้ายกลายเป็น "SELECT * FROM user_table WHERE username = thom"; DROP DATABASE user_table;

เนื่องจากโค้ด SQL มีไวยากรณ์ที่ถูกต้อง เครื่องหมายอัฒภาคจึงสร้าง วางฐานข้อมูล user_tableแบบสอบถาม SQL ใหม่และตารางผู้ใช้ของคุณถูกลบ นิพจน์ที่เตรียมไว้ไม่อนุญาตให้มีอักขระ และ ; เพื่อดำเนินการตามคำขอเดิมและคำสั่งให้เสร็จสิ้น วางฐานข้อมูลจะไม่มีวันถูกประหารชีวิต

เสมอใช้แบบสอบถามที่เตรียมไว้เมื่อส่งหรือรับข้อมูลจากฐานข้อมูลด้วย PDO

หากต้องการใช้นิพจน์ที่เตรียมไว้ คุณต้องสร้างตัวแปรใหม่ที่จะเรียกใช้เมธอด เตรียมตัว()บนวัตถุฐานข้อมูล

ในรูปแบบที่ถูกต้องโค้ดจะมีลักษณะดังนี้:

$servername = "mysql.hostinger.com"; $ฐานข้อมูล = "u266072517_name"; $ชื่อผู้ใช้ = "u266072517_user"; $password = "buystuffpwd"; $sql = "mysql:host=$servername;dbname=$database;"; $dsn_Options = ; // สร้างการเชื่อมต่อใหม่ไปยังฐานข้อมูล MySQL โดยใช้ PDO, $my_Db_Connection เป็นวัตถุลอง ( $my_Db_Connection = new PDO($sql, $username, $password, $dsn_Options); echo "เชื่อมต่อเรียบร้อยแล้ว"; ) catch (PDOException $ error) ( echo "Connection error: " . $error->getMessage(); ) // ตั้งค่าตัวแปรสำหรับบุคคลที่เราต้องการเพิ่มลงในฐานข้อมูล $first_Name = "Thom"; $last_Name = "ขวด"; $อีเมล์ = " [ป้องกันอีเมล]"; // ที่นี่เราสร้างตัวแปรที่เรียกวิธีการเตรียม () ของวัตถุฐานข้อมูล // แบบสอบถาม SQL ที่คุณต้องการเรียกใช้จะถูกป้อนเป็นพารามิเตอร์และตัวยึดตำแหน่งจะถูกเขียนดังนี้: placeholder_name $my_Insert_Statement = $my_Db_Connection-> เตรียม("INSERT INTO Students (name, Lastname, email) VALUES (:first_name, :last_name, :email)"); // ตอนนี้เราบอกสคริปต์ว่าตัวแปรใดที่ตัวยึดตำแหน่งแต่ละตัวอ้างถึงจริง ๆ โดยใช้เมธอด bindParam() // First พารามิเตอร์คือตัวยึดตำแหน่งในคำสั่งด้านบน - พารามิเตอร์ตัวที่สองคือตัวแปรที่ควรอ้างถึง $my_Insert_Statement->bindParam(:first_name, $first_Name); $my_Insert_Statement->bindParam(:last_name, $last_Name); , $email); // ดำเนินการค้นหาโดยใช้ข้อมูลที่เราเพิ่งกำหนด // วิธีการดำเนินการ () ส่งคืน TRUE หากสำเร็จและเป็น FALSE หากไม่สำเร็จ ทำให้คุณสามารถเขียนข้อความของคุณเองได้ที่นี่หาก ( $my_Insert_Statement-> ดำเนินการ()) ( echo "สร้างบันทึกใหม่เรียบร้อยแล้ว"; ) else ( echo "ไม่สามารถสร้างบันทึกได้"; ) // ณ จุดนี้ คุณสามารถเปลี่ยนข้อมูลของตัวแปรและดำเนินการอีกครั้งเพื่อเพิ่มข้อมูลลงในฐานข้อมูล $first_Name = "John"; $last_Name = "สมิธ"; $อีเมล์ = " [ป้องกันอีเมล]"; $my_Insert_Statement->execute(); // ดำเนินการอีกครั้งเมื่อตัวแปรมีการเปลี่ยนแปลงถ้า ($my_Insert_Statement->execute()) ( echo "สร้างบันทึกใหม่เรียบร้อยแล้ว"; ) else ( echo "ไม่สามารถสร้างบันทึกได้"; )

ในบรรทัดที่ 28, 29 และ 30 เราใช้วิธีนี้ ผูกพารามิเตอร์()วัตถุฐานข้อมูล นอกจากนี้ยังมีวิธีการ ผูกค่า()แตกต่างจากครั้งก่อน

  • ผูกพารามิเตอร์() –วิธีการนี้จะนับข้อมูลเมื่อวิธีการ ดำเนินการ()ประสบความสำเร็จ ครั้งแรกที่สคริปต์เข้าถึงเมธอด ดำเนินการ()เขาเห็นสิ่งนั้น $first_Nameอ้างอิงถึง “Thom” ผูกค่านั้นและดำเนินการค้นหา เมื่อสคริปต์มาถึงวิธีการครั้งที่สอง ดำเนินการ()เขามองอย่างนั้น $first_Nameตอนนี้อ้างอิงถึง “John” ผูกค่านั้นและเรียกใช้แบบสอบถามอีกครั้งด้วยค่าใหม่ สิ่งสำคัญคือต้องเข้าใจว่าเราสร้างคำขอเพียงครั้งเดียว จากนั้นจึงแทนที่ข้อมูลที่แตกต่างกันในตำแหน่งต่างๆ ในสคริปต์
  • ผูกค่า() –วิธีนี้จะคำนวณข้อมูลทันทีที่ถึงตา เนื่องจากมีความคุ้มค่า $first_Nameตั้งเป็น “ทอม” ตอนที่เราไปถึงวิธี ผูกค่า()จะใช้เมื่อเรียกเมธอด ดำเนินการ()สำหรับ $my_Insert_Statement.

โปรดทราบว่าเรากำลังใช้ตัวแปรซ้ำ $first_Nameและให้ค่าใหม่เป็นครั้งที่สอง หากคุณตรวจสอบฐานข้อมูลของคุณหลังจากรันสคริปต์นี้ ชื่อที่ระบุทั้งสองจะอยู่ที่นั่น ซึ่งตรงกันข้ามกับค่าตัวแปรนี้ $first_Nameจะเท่ากับ "John" ที่ส่วนท้ายของสคริปต์นี้ โปรดจำไว้ว่า PHP จะประเมินเนื้อหาของสคริปต์ก่อนที่จะรัน

หากคุณเปลี่ยนสคริปต์ของคุณโดยการแทนที่ ผูกพารามิเตอร์บน ผูกค่าคุณจะเพิ่ม “Thom Vial” ลงในฐานข้อมูล MySQL สองครั้ง และ John Smith จะถูกละเว้น

ขั้นตอนที่ 3 - ตรวจสอบความสำเร็จและแก้ไขปัญหาทั่วไป

หากการสืบค้นที่เรารันในฐานข้อมูล MySQL สำเร็จ เราจะเห็นข้อความต่อไปนี้:

การแก้ไขข้อผิดพลาดทั่วไป

MySQLi

ในกรณีอื่น ข้อความแสดงข้อผิดพลาดจะแสดงแทนข้อความข้างต้น ตัวอย่างเช่น เรามาสร้างข้อผิดพลาดทางไวยากรณ์อย่างหนึ่งในโค้ดของเรา แล้วเราจะได้สิ่งนี้:

ดังที่เราเห็นแล้วว่าส่วนแรกของโค้ดนั้นใช้ได้ การเชื่อมต่อถูกสร้างขึ้นสำเร็จแล้ว แต่แบบสอบถาม SQL ของเราพบความล้มเหลวเมื่อดำเนินการ

"ข้อผิดพลาด: INSERT INTO นักเรียน (ชื่อ นามสกุล อีเมล) ค่า ("Thom", "Vial", " [ป้องกันอีเมล]") คุณมีข้อผิดพลาดในไวยากรณ์ SQL ของคุณ ตรวจสอบคู่มือที่สอดคล้องกับเวอร์ชันเซิร์ฟเวอร์ MySQL ของคุณเพื่อหาไวยากรณ์ที่ถูกต้องที่จะใช้ใกล้กับ "(ชื่อ นามสกุล อีเมล) VALUES ("Thom", "Vial", " [ป้องกันอีเมล]")" ที่บรรทัด 1"

มีข้อผิดพลาดทางไวยากรณ์ที่ทำให้สคริปต์ของเราล้มเหลว ข้อผิดพลาดอยู่ที่นี่:

$sql = "INSERT INTO นักเรียน (ชื่อ นามสกุล อีเมล) ค่า ("Thom", "Vial", " [ป้องกันอีเมล]")";

อย่างที่คุณเห็น เรากำลังใช้วงเล็บปีกกาแทนวงเล็บ สิ่งนี้ไม่ถูกต้องและส่งผลให้เกิดข้อผิดพลาดทางไวยากรณ์ในสคริปต์ของเรา

สปส

ในบรรทัดที่ 7 ของการเชื่อมต่อ PDO โหมดการจัดการข้อผิดพลาดถูกตั้งค่าเป็น 'แสดงข้อยกเว้นทั้งหมด' หากคุณลบสิ่งนี้ออกจากสคริปต์และคำขอล้มเหลว คุณจะไม่ได้รับข้อความแสดงข้อผิดพลาดใดๆ เมื่อเปิดใช้งานข้อยกเว้น ปัญหาเฉพาะที่พบจะปรากฏขึ้น โดยทั่วไปวิธีนี้จะใช้ดีที่สุดในการพัฒนาสคริปต์ เนื่องจากอาจเปิดเผยชื่อฐานข้อมูลและตารางที่คุณต้องการซ่อนไม่ให้ใครก็ตามที่อาจเข้าถึงข้อมูลของคุณโดยไม่ได้รับอนุญาต ในกรณีข้างต้น เมื่อใช้วงเล็บปีกกาแทนวงเล็บ ข้อผิดพลาดจะมีลักษณะดังนี้:

ข้อผิดพลาดร้ายแรง: ข้อยกเว้นที่ไม่ได้รับการตรวจสอบ "PDOException" พร้อมข้อความ "SQLSTATE: ข้อผิดพลาดทางไวยากรณ์หรือการละเมิดการเข้าถึง: 1064 คุณมีข้อผิดพลาดในไวยากรณ์ SQL ของคุณ; ตรวจสอบคู่มือที่สอดคล้องกับเวอร์ชันเซิร์ฟเวอร์ MySQL ของคุณเพื่อหาไวยากรณ์ที่ถูกต้องเพื่อใช้ใกล้กับ "(ชื่อ, นามสกุล, อีเมล) VALUES ("Thom", "Vial", " [ป้องกันอีเมล]")" ที่บรรทัด 1"

ปัญหาอื่น ๆ ที่คุณอาจพบ:

  • ระบุฟิลด์ไม่ถูกต้อง (ไม่มีฟิลด์หรือชื่อสะกดผิด)
  • ประเภทค่าไม่ตรงกับประเภทฟิลด์ เช่น เมื่อเราต้องการกำหนดค่าของตัวเลข 47 สนาม ชื่อเราจะได้รับข้อผิดพลาดเนื่องจากค่าที่คาดว่าจะเป็นสตริง แต่ถ้าคุณระบุตัวเลขในเครื่องหมายคำพูด เช่น “47” จะไม่มีข้อผิดพลาดเพราะหมายเลขของเราจะถูกเขียนเป็นสตริงในช่องนี้
  • ความพยายามที่จะป้อนข้อมูลลงในตารางที่ไม่มีอยู่หรือมีข้อผิดพลาดในการสะกดชื่อตาราง

ข้อผิดพลาดทั้งหมดนี้สามารถแก้ไขได้โดยทำตามคำแนะนำในการแก้ไขข้อผิดพลาดหรือโดยการตรวจสอบบันทึกข้อผิดพลาด

หลังจากเพิ่มข้อมูลสำเร็จแล้ว เราควรเห็นข้อมูลนั้นในฐานข้อมูลของเรา นี่คือตัวอย่างของตารางที่เราเพิ่มข้อมูลลงไป phpMyAdmin.

บทสรุป

ในบทช่วยสอนนี้ คุณได้เรียนรู้วิธีการใช้งาน รหัส PHP เพื่อเพิ่มบันทึกลงในตาราง MySQLโดยใช้ MySQLiและ สปส- เรายังดูข้อผิดพลาดทั่วไปและแนวทางแก้ไขด้วย การรู้วิธีใช้โค้ด PHP เพื่อเพิ่มลงในฐานข้อมูล MySQL จะมีประโยชน์ไม่ว่าคุณจะกำลังเรียนรู้การเขียนโปรแกรมหรือสร้างเว็บไซต์ของคุณเองอยู่แล้วก็ตาม

ในบทความนี้ เราจะดูวิธีใช้ PHP เพื่อแทรกแถวลงในฐานข้อมูล MySQL

ขั้นตอนที่ 1 - การสร้างตาราง

ขั้นแรกคุณต้องสร้างตารางสำหรับข้อมูล นี่เป็นขั้นตอนง่ายๆ ที่สามารถทำได้โดยใช้ phpMyAdmin ในแผงควบคุมโฮสติ้งของคุณ

หลังจากเข้าสู่ระบบ phpMyAdmin คุณจะเห็นอินเทอร์เฟซนี้:

มาสร้างตารางชื่อ Students ในฐานข้อมูล u266072517_name โดยคลิกที่ปุ่ม “Create Table” หลังจากนี้เราจะเห็นหน้าใหม่ซึ่งเราตั้งค่าพารามิเตอร์ตารางที่จำเป็นทั้งหมด:

นี่คือการตั้งค่าที่ง่ายที่สุดที่สามารถใช้กับตารางและรับข้อมูลเพิ่มเติมเกี่ยวกับโครงสร้างตาราง/ฐานข้อมูล

ตัวเลือกคอลัมน์:

  • Name คือชื่อคอลัมน์ที่ปรากฏที่ด้านบนของตาราง
  • ประเภท — ประเภทคอลัมน์ ตัวอย่างเช่น เราเลือก varchar เนื่องจากเราจะป้อนค่าสตริง
  • ความยาว/ค่า - ใช้เพื่อระบุความยาวสูงสุดที่รายการในคอลัมน์นี้สามารถมีได้
  • ดัชนี - เราใช้ดัชนี "หลัก" สำหรับฟิลด์ "ID" เมื่อสร้างตาราง ขอแนะนำให้ใช้เพียงคอลัมน์เดียวเป็นคีย์หลัก ใช้เพื่อแสดงรายการบันทึกในตารางและจำเป็นเมื่อตั้งค่าตาราง ฉันยังได้สังเกต "A_I" ซึ่งหมายถึง "การเพิ่มอัตโนมัติ" - พารามิเตอร์สำหรับการกำหนดหมายเลขบันทึกโดยอัตโนมัติ (1,2,3,4...)
    คลิกปุ่ม "บันทึก" จากนั้นตารางจะถูกสร้างขึ้น

ขั้นตอนที่ 2: เขียนโค้ด PHP เพื่อแทรกข้อมูลลงใน MySQL

ตัวเลือกที่ 1 - วิธี MySQLi

ขั้นแรกคุณต้องสร้างการเชื่อมต่อกับฐานข้อมูล หลังจากนี้เราใช้แบบสอบถาม SQL INSERT ตัวอย่างโค้ดแบบเต็ม:

" . mysqli_error($conn); ) mysqli_close($conn); ?>

ส่วนแรกของโค้ด (บรรทัด 3 - 18) มีวัตถุประสงค์เพื่อเชื่อมต่อกับฐานข้อมูล

เริ่มจากบรรทัดที่ 19:

$sql = "INSERT INTO นักเรียน (ชื่อ นามสกุล อีเมล) ค่า ("Thom", "Vial", " [ป้องกันอีเมล]")";

มันแทรกข้อมูลลงในฐานข้อมูล MySQL INSERT INTO เป็นคำสั่งที่เพิ่มข้อมูลลงในตารางที่ระบุ ในตัวอย่างของเรา ข้อมูลจะถูกเพิ่มลงในตารางนักเรียน

ถัดไปคือรายการคอลัมน์ที่มีการแทรกค่า: ชื่อ, นามสกุล, อีเมล ข้อมูลจะถูกเพิ่มตามลำดับที่ระบุ หากเราเขียน (อีเมล นามสกุล ชื่อ) ค่าจะถูกเพิ่มในลำดับอื่น

ส่วนถัดไปคือคำสั่ง VALUES ที่นี่เราระบุค่าสำหรับคอลัมน์: name = Thom, นามสกุล = Vial, email = [ป้องกันอีเมล].

เราดำเนินการคำขอโดยใช้โค้ด PHP ในโค้ดโปรแกรม การสืบค้น SQL จะต้องหลีกหนีด้วยเครื่องหมายคำพูด โค้ดชิ้นถัดไป (บรรทัด 20-22) ตรวจสอบว่าคำขอของเราสำเร็จหรือไม่:

if (mysqli_query($conn, $sql)) ( echo "บันทึกใหม่สร้างสำเร็จ"; )

รหัสนี้แสดงข้อความระบุว่าคำขอสำเร็จ

และส่วนสุดท้าย (บรรทัดที่ 22 - 24) จะแสดงการแจ้งเตือนหากคำขอไม่สำเร็จ:

อื่น ๆ ( echo "ข้อผิดพลาด: " . $sql . "
" . mysqli_error($conn); )

ตัวเลือก 2 - วิธี PHP Data Object (PDO)

ก่อนอื่นเราต้องเชื่อมต่อกับฐานข้อมูลโดยการสร้างวัตถุ PDO ใหม่ เมื่อทำงานกับมันเราจะใช้วิธีการ PDO ต่างๆ วิธีการวัตถุถูกเรียกดังต่อไปนี้:

$the_Object->the_Method();

PDO อนุญาตให้คุณ "เตรียม" โค้ด SQL ก่อนที่จะดำเนินการ แบบสอบถาม SQL ได้รับการประเมินและ "แก้ไข" ก่อนที่จะรัน ตัวอย่างเช่น การโจมตีแบบแทรก SQL แบบง่ายๆ สามารถทำได้โดยเพียงแค่ป้อนโค้ด SQL ลงในฟิลด์แบบฟอร์ม ตัวอย่างเช่น:

เนื่องจากนี่เป็น SQL ที่ถูกต้องตามหลักไวยากรณ์ อัฒภาคจึงทำให้ DROP DATABASE user_table เป็นแบบสอบถาม SQL ใหม่และตารางผู้ใช้จึงถูกละทิ้ง นิพจน์ที่เตรียมไว้ (ตัวแปรที่ถูกผูกไว้) ไม่อนุญาตให้อัฒภาคและเครื่องหมายคำพูดยุติการสืบค้นดั้งเดิม ดังนั้นคำสั่ง DROP DATABASE จะไม่ดำเนินการ

ในการใช้นิพจน์ที่เตรียมไว้ คุณจะต้องเขียนตัวแปรใหม่ที่เรียกใช้เมธอด wait() ของออบเจ็กต์ฐานข้อมูล

รหัสที่ถูกต้อง:

รับข้อความ(); ) // ตั้งค่าตัวแปรให้กับบุคคลที่เราต้องการเพิ่มลงในฐานข้อมูล $first_Name = "Thom"; $last_Name = "ขวด"; $อีเมล์ = " [ป้องกันอีเมล]"; // สร้างตัวแปรที่เรียกวิธีการเตรียม () ของวัตถุฐานข้อมูล // แบบสอบถาม SQL ที่คุณต้องการเรียกใช้ถูกป้อนเป็นพารามิเตอร์และตัวยึดตำแหน่งจะถูกเขียนดังนี้: placeholder_name $my_Insert_Statement = $my_Db_Connection->prepare(" INSERT INTO Students ( name, Lastname, email) VALUES (:first_name, :last_name, :email)"); // ตอนนี้เราบอกสคริปต์ว่าตัวแปรใดอ้างอิงถึงแต่ละ placeholder เพื่อใช้เมธอด bindParam() // พารามิเตอร์ตัวแรกคือ ตัวยึดตำแหน่งในคำสั่งด้านบน ตัวที่สองคือตัวแปรที่ควรอ้างอิง $my_Insert_Statement->bindParam(:first_name, $first_Name); $my_Insert_Statement->bindParam(:last_name, $last_Name); // ดำเนินการค้นหาโดยใช้ข้อมูลที่เรา เพิ่งกำหนด // วิธีการดำเนินการ () คืนค่า TRUE หากสำเร็จและเป็น FALSE หากล้มเหลว ทำให้คุณมีตัวเลือกในการพิมพ์ข้อความ if ของคุณเอง ($my_Insert_Statement->execute()) ( echo "New recordcreatedsuccessfully"; ) else ( echo "Unable to createrecord"; ) // ณ จุดนี้ คุณสามารถเปลี่ยนข้อมูลตัวแปรและเรียกใช้แบบสอบถามเพื่อเพิ่มข้อมูลลงในฐานข้อมูลไปยังฐานข้อมูล $first_Name = "John"; $last_Name = "สมิธ"; $อีเมล์ = " [ป้องกันอีเมล]"; $my_Insert_Statement->execute(); // ดำเนินการอีกครั้งเมื่อตัวแปรมีการเปลี่ยนแปลงถ้า ($my_Insert_Statement->execute()) ( echo "New recordcreatedsuccessfully"; ) else ( echo "ไม่สามารถ createrecord";

ในบรรทัดที่ 28, 29 และ 30 เราใช้เมธอดbindParam() ของอ็อบเจ็กต์ฐานข้อมูล นอกจากนี้ยังมีวิธีbindValue() ซึ่งแตกต่างจากวิธีก่อนหน้ามาก

  • bindParam() - เมธอดนี้จะประเมินข้อมูลเมื่อถึงวิธีดำเนินการ () ครั้งแรกที่สคริปต์เข้าถึงเมธอดดำเนินการ () จะเห็นว่า $first_Name ตรงกับ "Thom" จากนั้นผูกค่านี้และรันคำขอ เมื่อสคริปต์ไปถึงวิธีดำเนินการที่สอง () จะเห็นว่าตอนนี้ $first_Name ตรงกับ "John" จากนั้นจะผูกค่านี้และเรียกใช้แบบสอบถามอีกครั้งด้วยค่าใหม่ สิ่งสำคัญคือต้องจำไว้ว่าเราได้กำหนดการสืบค้นเพียงครั้งเดียวและนำมาใช้ซ้ำกับข้อมูลที่แตกต่างกัน ณ จุดต่างๆ ในสคริปต์
  • bindValue() - เมธอดนี้จะประเมินข้อมูลเมื่อถึงbindValue() เนื่องจาก $first_Name ถูกตั้งค่าเป็น "Thom" เมื่อถึงbindValue() มันจะถูกใช้ทุกครั้งที่เรียกใช้เมธอดดำเนินการ () บน $my_Insert_Statement
    โปรดสังเกตว่าเรากำลังใช้ตัวแปร $first_Name ซ้ำและกำหนดค่าใหม่เป็นครั้งที่สอง หลังจากรันสคริปต์แล้ว ทั้งสองชื่อจะถูกระบุในฐานข้อมูล แม้ว่าตัวแปร $first_Name ที่ท้ายสคริปต์จะมีค่าเป็น “John” ก็ตาม โปรดจำไว้ว่า PHP จะตรวจสอบสคริปต์ทั้งหมดก่อนที่จะรัน

หากคุณอัปเดตสคริปต์เพื่อแทนที่bindParamด้วยbindValue คุณจะแทรก "Thom Vial" ลงในฐานข้อมูลสองครั้ง และ John Smith จะถูกละเว้น

ขั้นตอนที่ 3 - ยืนยันความสำเร็จและแก้ไขปัญหา

หากการร้องขอเพื่อแทรกแถวลงในฐานข้อมูลสำเร็จ เราจะเห็นข้อความต่อไปนี้:

การแก้ไขปัญหาข้อผิดพลาดทั่วไป

MySQLi

ในกรณีอื่นใด ข้อความแสดงข้อผิดพลาดจะปรากฏขึ้น ตัวอย่างเช่น เรามาสร้างข้อผิดพลาดทางไวยากรณ์อย่างหนึ่งในโค้ด แล้วเราจะได้สิ่งต่อไปนี้:

ส่วนแรกของโค้ดก็โอเค สร้างการเชื่อมต่อสำเร็จแล้ว แต่การสืบค้น SQL ล้มเหลว

"ข้อผิดพลาด: INSERT INTO นักเรียน (ชื่อ นามสกุล อีเมล) ค่า ("Thom", "Vial", " [ป้องกันอีเมล]") คุณมีข้อผิดพลาดในไวยากรณ์ SQL ของคุณ ตรวจสอบคู่มือที่สอดคล้องกับเวอร์ชันเซิร์ฟเวอร์ MySQL ของคุณเพื่อดูไวยากรณ์สิทธิ์ที่จะใช้ใกล้กับ "(ชื่อ นามสกุล อีเมล) VALUES ("Thom", "Vial", " [ป้องกันอีเมล]")" ที่บรรทัด 1"

มีข้อผิดพลาดทางไวยากรณ์ที่ทำให้สคริปต์ขัดข้อง ข้อผิดพลาดอยู่ที่นี่:

$sql = "INSERT INTO นักเรียน (ชื่อ นามสกุล อีเมล) ค่า ("Thom", "Vial", " [ป้องกันอีเมล]")";

เราใช้วงเล็บปีกกาแทนแบบปกติ สิ่งนี้ไม่ถูกต้องและสคริปต์สร้างข้อผิดพลาดทางไวยากรณ์

สปส

บรรทัดที่ 7 ของการเชื่อมต่อ PDO ตั้งค่าโหมดข้อผิดพลาดเป็น "แสดงข้อยกเว้นทั้งหมด" หากตั้งค่าเป็นค่าอื่นและคำขอล้มเหลว เราจะไม่ได้รับข้อความแสดงข้อผิดพลาดใดๆ

ควรใช้การตั้งค่านี้เมื่อพัฒนาสคริปต์เท่านั้น เมื่อเปิดใช้งาน ชื่อฐานข้อมูลและตารางอาจถูกแสดงซึ่งซ่อนไว้ได้ดีที่สุดด้วยเหตุผลด้านความปลอดภัย ในกรณีที่อธิบายไว้ข้างต้น เมื่อใช้เครื่องหมายปีกกาแทนเครื่องหมายปีกกาปกติ ข้อความแสดงข้อผิดพลาดจะมีลักษณะดังนี้:

ข้อผิดพลาดร้ายแรง: UncaughtExceptionion "PDOException" พร้อมข้อความ "SQLSTATE: ข้อผิดพลาดทางไวยากรณ์หรือการละเมิดการเข้าถึง: 1064 คุณมีข้อผิดพลาดในไวยากรณ์ SQL ของคุณ ตรวจสอบคู่มือที่สอดคล้องกับเวอร์ชันเซิร์ฟเวอร์ MySQL ของคุณเพื่อหาไวยากรณ์สิทธิ์ที่จะใช้ใกล้กับ "(ชื่อ, นามสกุล, อีเมล) VALUES ("Thom", "Vial", " [ป้องกันอีเมล]")" ที่บรรทัด 1"

ปัญหาที่เป็นไปได้อื่นๆ:

  • ระบุคอลัมน์ไม่ถูกต้อง (คอลัมน์ไม่มีอยู่หรือชื่อคอลัมน์สะกดผิด)
  • ประเภทค่าหนึ่งถูกกำหนดให้กับคอลัมน์ประเภทอื่น ตัวอย่างเช่น หากคุณพยายามแทรกหมายเลข 47 ลงในคอลัมน์ชื่อ คุณจะได้รับข้อผิดพลาด คอลัมน์นี้ต้องใช้ค่าสตริง แต่ถ้าเราระบุตัวเลขในเครื่องหมายคำพูด (เช่น "47") ก็จะใช้งานได้เนื่องจากเป็นสตริง
  • มีความพยายามที่จะป้อนข้อมูลลงในตารางที่ไม่มีอยู่ มีการสะกดผิดในชื่อตารางด้วย

หลังจากป้อนข้อมูลเรียบร้อยแล้วเราจะเห็นว่าได้มีการเพิ่มข้อมูลลงในฐานข้อมูลแล้ว ด้านล่างนี้เป็นตัวอย่างของตารางที่มีการเพิ่มข้อมูล

อัปเดตครั้งล่าสุด: 11/11/2558

หากต้องการเพิ่มข้อมูล ให้ใช้นิพจน์ "INSERT":

$query ="ใส่ค่าสินค้า(NULL, "Samsung Galaxy III", "ซัมซุง"");

คำสั่ง INSERT จะแทรกแถวเดียวลงในตาราง หลังจากคีย์เวิร์ด INTO ชื่อตารางจะถูกระบุและหลังจาก VALUES ชุดของค่าสำหรับคอลัมน์ทั้งหมดจะถูกระบุในวงเล็บ เนื่องจากเรามีสามคอลัมน์ในตาราง เราจึงระบุค่าสามค่า

เนื่องจากในหัวข้อที่แล้ว เมื่อสร้างตาราง เราได้ระบุลำดับของคอลัมน์ดังต่อไปนี้: id ชื่อ บริษัท ในกรณีนี้ค่า NULL จะถูกส่งผ่านสำหรับคอลัมน์ id ชื่อ "Samsung Galaxy III" และ "Samsumg" สำหรับบริษัท

เนื่องจากคอลัมน์ id ถูกกำหนดเป็น AUTO_INCREMENT เราจึงไม่จำเป็นต้องให้ค่าตัวเลขเฉพาะเจาะจงและสามารถส่งค่า NULL ได้และ MySQL จะกำหนดค่าถัดไปที่มีอยู่ให้กับคอลัมน์

ตอนนี้เรามาดูการเพิ่มข้อมูลโดยใช้ตัวอย่าง มาสร้างไฟล์ create.phpโดยมีเนื้อหาดังนี้

เพิ่มข้อมูลแล้ว"; ) // ปิดการเชื่อมต่อ mysqli_close($link); ) ?>

เพิ่มรูปแบบใหม่

ใส่รุ่น:

ผู้ผลิต:



ที่นี่รหัสสำหรับการโต้ตอบกับฐานข้อมูลจะรวมกับการทำงานของแบบฟอร์ม: เราป้อนข้อมูลที่จะเพิ่มลงในฐานข้อมูลโดยใช้แบบฟอร์ม

ความปลอดภัยและ MySQL

ที่นี่เราใช้ฟังก์ชัน mysqli_real_escape_string() มันถูกใช้เพื่อหลีกอักขระในสตริง ซึ่งจากนั้นจะถูกใช้ในการสืบค้น SQL ใช้เป็นพารามิเตอร์ของวัตถุการเชื่อมต่อและสตริงที่จะหลบหนี

ดังนั้น จริงๆ แล้วเราใช้การหลีกอักขระสองครั้ง ครั้งแรกสำหรับนิพจน์ sql ที่ใช้ฟังก์ชัน mysqli_real_escape_string() และจากนั้นสำหรับ html โดยใช้ฟังก์ชัน htmlentities() สิ่งนี้จะช่วยให้เราสามารถป้องกันตนเองจากการโจมตีสองประเภทในคราวเดียว: การโจมตี XSS และการฉีด SQL

และให้
- ตอนนี้เราจะพูดถึงวิธีการ เพิ่มรูปภาพไปยังฐานข้อมูล MySQL ผ่านแบบฟอร์มโดยใช้ PHP.

การสร้างฟิลด์ในฐานข้อมูล MySQL เพื่อเพิ่มรูปภาพ

ประการแรกผมอยากจะบอกว่าสำหรับ การจัดเก็บภาพในฐานข้อมูล MySQLจำเป็นต้องกำหนดเขตข้อมูลตารางรายการใดรายการหนึ่งเป็นอนุพันธ์ของประเภท BLOB

ตัวย่อ BLOB ย่อมาจากวัตถุไบนารีขนาดใหญ่ ประเภทการจัดเก็บข้อมูล BLOB มีหลายตัวเลือก:

  • TINYBLOB - สามารถจัดเก็บได้ถึง 255 ไบต์
  • BLOB สามารถจัดเก็บข้อมูลได้มากถึง 64 กิโลไบต์
  • MEDIUMBLOB - สูงสุด 16 เมกะไบต์
  • LONGBLOB สูงสุด 4 กิกะไบต์

สำหรับ การจัดเก็บไฟล์รูปภาพในฐานข้อมูลคุณต้องอ่านไฟล์ลงในตัวแปรและสร้างแบบสอบถามเพื่อเพิ่มข้อมูลลงในตาราง

การเตรียมแบบฟอร์มบนเพจเพื่อเพิ่มรูปภาพลงในฐานข้อมูล MySQL

ในกรณีของฉันงานคือ เพิ่มสองภาพลงในฐานข้อมูลผ่านแบบฟอร์มโดยใช้ PHP- เรามีแบบฟอร์มที่มีสองช่องและปุ่มส่ง:

ชื่อแบบฟอร์ม =”form1″ method=”โพสต์” action=”add_image.php”
enctype="หลายส่วน/แบบฟอร์มข้อมูล"

ฉันขอเตือนคุณว่าคุณลักษณะ การกระทำระบุไฟล์ที่จะทำการโหลดไฟล์รูปภาพ คุณลักษณะ เข้ารหัสระบุวิธีการเข้ารหัสเนื้อหาแบบฟอร์มและข้อมูลการอัพโหลดไฟล์ ดูวิธีการกรอกแอตทริบิวต์อย่างถูกต้อง เข้ารหัสเพื่อหลีกเลี่ยง

บันทึก:การสนับสนุนสำหรับการอัปโหลดหลายไฟล์ถูกนำมาใช้ในเวอร์ชัน 3.0.10

การเขียนโค้ด PHP เพื่อบันทึกรูปภาพในฐานข้อมูล MySQL

เนื่องจากเรากำลังส่งไฟล์สองไฟล์ในแอตทริบิวต์ ชื่อหลังคำว่า "userfile" ด้วยวงเล็บเหลี่ยม ด้วยเหตุนี้เราจึงทำให้ชัดเจนว่าเรากำลังส่งไฟล์หลายไฟล์โดยใช้อาร์เรย์ที่มีแอตทริบิวต์ของไฟล์:

$_FILES['userfile']['ชื่อ']

ชื่อไฟล์ต้นฉบับบนเครื่องไคลเอ็นต์

$_FILES['userfile']['type']

ประเภท mime ของไฟล์ หากเบราว์เซอร์ให้ข้อมูลนี้
ตัวอย่าง: "รูปภาพ/gif"

$_FILES['ไฟล์ผู้ใช้']['ขนาด']

$_FILES['userfile']['tmp_name']

ชื่อไฟล์ชั่วคราวซึ่งไฟล์ที่ดาวน์โหลดถูกบันทึกไว้บนเซิร์ฟเวอร์

จะรับค่าของแต่ละไฟล์ได้อย่างไร?

ตัวอย่างเช่น สมมติว่าไฟล์ชื่อ /home/test/1.jpg และ /home/test/2.jpg ถูกส่งไป

ในกรณีนี้ $_FILES['userfile']['name']
จะมีค่า 1.jpg,
และ $_FILES['userfile']['name']
- ค่า 2.jpg

ในทำนองเดียวกัน $_FILES['userfile']['size'] จะมีค่าขนาดไฟล์ 1.jpg เป็นต้น ตอนนี้เรามาดูโค้ดของไฟล์ add_image.php ซึ่งระบุไว้ในแอตทริบิวต์ form การกระทำ.

1024*1024||$image_size==0) ( $ErrorDescription="แต่ละภาพไม่ควรเกิน 1MB! ไม่สามารถเพิ่มภาพลงในฐานข้อมูลได้"; return ""; ) // หากไฟล์มาถึงแล้ว ให้ตรวจสอบว่าไฟล์มาถึงหรือไม่ กราฟิก // มัน (ด้วยเหตุผลด้านความปลอดภัย) if(substr($_FILES["userfile"]["type"][$num], 0, 5)=="image") ( //อ่านเนื้อหาของไฟล์ $image=file_get_contents($_FILES ["userfile"]["tmp_name"][$num]); //Escape อักขระพิเศษในเนื้อหาไฟล์ $image=mysql_escape_string($image); return $image; )else( ErrorDescription= "คุณไม่ได้โหลดรูปภาพ ดังนั้นจึงไม่สามารถเพิ่มได้"; return ""; )else( $ErrorDescription="คุณไม่ได้อัปโหลดรูปภาพ ช่องนี้ว่างเปล่า จึงไม่สามารถเพิ่มไฟล์ลงในฐานข้อมูลได้" ”; return ; ) กลับ $image; -

ดังนั้นในบทความนี้เราจึงได้พูดถึงวิธีบันทึกรูปภาพในฐานข้อมูล MySQL , โดยใช้ PHP