การเพิ่มข้อมูลลงในตาราง sql php วิธีเขียนฐานข้อมูล MySQL โดยใช้โค้ด PHP
และให้
- ตอนนี้เราจะพูดถึงวิธีการ เพิ่มรูปภาพไปยังฐานข้อมูล 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
ในบทความนี้เราจะมาดูสิ่งที่สำคัญที่สุดบางส่วนกัน แบบสอบถาม SQL- นี้ แบบสอบถามเพื่อเพิ่มและลบบันทึกออกจากตารางฐานข้อมูล- เพราะบ่อยครั้งที่คุณต้องทำ เพิ่มบันทึกใหม่ลงในตารางและทำโดยอัตโนมัติจึงจำเป็นต้องศึกษาเนื้อหานี้
เริ่มต้นด้วย แบบสอบถาม SQL เพื่อเพิ่มระเบียนใหม่ลงในตาราง:
INSERT INTO ผู้ใช้ (เข้าสู่ระบบ, ผ่าน) ค่า ("TestUser", "123456")
เมื่อเพิ่มรายการคำสั่ง " ใส่เข้าไป" จากนั้นชื่อของตารางที่เราแทรกบันทึก ถัดมาเป็นชื่อของช่องที่เราต้องการกรอกในวงเล็บ จากนั้นในวงเล็บหลังคำว่า " ค่านิยม"เราเริ่มแสดงรายการค่าของฟิลด์ที่เราเลือก หลังจากดำเนินการค้นหานี้ รายการใหม่จะปรากฏในตารางของเรา
บางครั้งก็จำเป็น อัพเดตรายการตารางสำหรับสิ่งนี้มีดังต่อไปนี้ แบบสอบถาม SQL:
อัปเดตผู้ใช้ SET เข้าสู่ระบบ = "TestUser2", pass = "1234560" WHERE เข้าสู่ระบบ = "TestUser"
แบบสอบถามนี้ซับซ้อนกว่าเนื่องจากมีโครงสร้าง " ที่ไหน"แต่เพิ่มเติมเกี่ยวกับเรื่องนี้ด้านล่าง อันดับแรกมาที่คำสั่ง" อัปเดต" แล้วตามด้วยชื่อตาราง และหลัง " ชุด"เราอธิบายค่าของฟิลด์ทั้งหมดที่เราต้องการเปลี่ยนแปลง คงจะง่าย แต่คำถามก็เกิดขึ้น: " บันทึกใดควรได้รับการปรับปรุง?“. ด้วยเหตุนี้จึงมี” ที่ไหน" ในกรณีนี้ เราอัพเดตเรคคอร์ดฟิลด์ " เข้าสู่ระบบ"อันไหนสำคัญ" ผู้ใช้ทดสอบ" โปรดทราบว่าหากมีบันทึกดังกล่าวหลายรายการแล้ว ทุกอย่างจะได้รับการอัปเดตอย่างแน่นอน- นี่เป็นสิ่งสำคัญมากที่ต้องเข้าใจ ไม่เช่นนั้นคุณอาจเสี่ยงต่อการสูญเสียโต๊ะ
มาพูดคุยกันอีกหน่อยเกี่ยวกับ " ที่ไหน" นอกเหนือจากการตรวจสอบความเท่าเทียมกันแบบง่ายๆ แล้ว ยังมีความไม่เท่าเทียมกันตลอดจนการดำเนินการเชิงตรรกะด้วย: และและ หรือ.
อัปเดตผู้ใช้ SET เข้าสู่ระบบ = "TestUser2", pass = "1234560" WHERE id< 15 AND login="TestUser"
ที่ให้ไว้ แบบสอบถาม SQLจะอัปเดตบันทึกเหล่านั้น รหัสซึ่งมีน้อย 15 และสนาม " เข้าสู่ระบบ"เรื่อง" ผู้ใช้ทดสอบ“ฉันหวังว่าคุณจะเข้าใจการออกแบบ” ที่ไหน“เพราะมันสำคัญมากนั่นเอง” ที่ไหน“ใช้เมื่อ. กำลังดึงข้อมูลบันทึกจากตารางและนี่เป็นงานที่ใช้บ่อยที่สุดเมื่อทำงานกับฐานข้อมูล
และสุดท้ายก็เรียบง่าย แบบสอบถาม SQL เพื่อลบบันทึกออกจากตาราง:
ลบจากผู้ใช้โดยที่ล็อกอิน = "TestUser2"
หลังจากคำสั่ง " ลบจาก" คือชื่อของตารางที่คุณต้องการลบบันทึก ต่อไปเราจะอธิบายโครงสร้าง "WHERE" หากบันทึกตรงตามเงื่อนไขที่อธิบายไว้ บันทึกนั้นจะถูกลบ โปรดทราบอีกครั้ง ขึ้นอยู่กับจำนวนบันทึกที่ตรงตามเงื่อนไข สภาพหลัง” ที่ไหน" สามารถลบจำนวนเท่าใดก็ได้
ในบทช่วยสอนนี้ เราจะดูวิธีแทรกข้อมูลลงในฐานข้อมูลโดยตรงจากสคริปต์ PHP ของคุณ
การแทรกข้อมูลโดยใช้ SQL
คุณใช้ SQL เพื่อแทรกข้อมูลลงในฐานข้อมูลในลักษณะเดียวกับที่คุณใช้ SQL เพื่อสร้างฐานข้อมูลและตาราง ไวยากรณ์แบบสอบถาม SQL คือ:
แทรกลงในชื่อตาราง (คอลัมน์ 1 คอลัมน์ 2, ...) ค่า(value1,ค่า 2, ...)
ดังที่คุณเห็น คุณสามารถอัปเดตหลายคอลัมน์ในคำสั่ง SQL เดียวได้โดยการระบุคอลัมน์เหล่านั้นในรายการที่คั่นด้วยเครื่องหมายจุลภาค แต่แน่นอน คุณยังสามารถระบุได้เพียงคอลัมน์เดียวและค่าเดียวเท่านั้น คอลัมน์ที่ไม่ได้กล่าวถึงในคำสั่ง SQL นี้จะยังว่างเปล่า
ตัวอย่าง: การแทรกบุคคลใหม่ลงในตาราง
ในตัวอย่างนี้ เราใช้ฐานข้อมูลจากบทที่ 18 สมมติว่าเราต้องการแทรกบุคคลลงในฐานข้อมูล มันอาจจะเป็นเช่นนั้น กัส กูสพร้อมหมายเลขโทรศัพท์ 99887766 และวันเกิด 1964-04-20 .
คำสั่ง SQL อาจมีลักษณะดังนี้:
$strSQL = "ใส่บุคคล(ชื่อ,นามสกุล,โทรศัพท์,วันเกิด) ค่า("Gus","Goose","99887766 ","1964-04-20"");
อย่างที่คุณเห็น คำสั่ง SQL อาจจะค่อนข้างยาว และอาจหลงทางได้ง่าย ดังนั้นจึงเป็นการดีกว่าถ้าเขียนคำสั่ง SQL ให้แตกต่างออกไปเล็กน้อย:
strSQL = "ใส่คนเข้าไป("; strSQL = strSQL "ชื่อ"; strSQL = strSQL "นามสกุล" strSQL = strSQL "โทรศัพท์," strSQL = strSQL "การเกิด)"; strSQL = strSQL "ค่า ("; strSQL = strSQL . ""กัส", "; strSQL = strSQL ""ห่าน", "; strSQL = strSQL ""99887766", "; strSQL = strSQL ""1964-04-20""); mysql_query($strSQL) หรือ die(mysql_error());
ในที่นี้ คำสั่ง SQL ถูกสร้างขึ้นโดยการแบ่งประโยคออกเป็นส่วนเล็กๆ แล้วรวมเข้าด้วยกันเป็นตัวแปร $strSQL.
ในทางปฏิบัติไม่มีความแตกต่างในการใช้วิธีใดวิธีหนึ่ง แต่เมื่อทำงานกับตารางขนาดใหญ่ ความสามารถในการ "ติดตาม" มีความสำคัญอย่างยิ่ง ดังนั้น ให้เลือกวิธีที่เหมาะสมที่สุด
ลองใช้โค้ดต่อไปนี้เพื่อแทรก Gus Goose ลงในฐานข้อมูล:
-
ดีบีอัปเดตแล้ว!
บันทึกอินพุตของผู้ใช้ลงในฐานข้อมูล
สมมติว่าคุณมีรูปแบบง่ายๆ: บันทึกแบบฟอร์มนี้ถูกส่งไปยังไฟล์
insert.php
โดยที่คุณดังที่แสดงในบทที่ 11 สามารถรับข้อมูลของผู้ใช้โดยการขอเนื้อหาของแบบฟอร์ม ในกรณีนี้ คำสั่ง SQL อาจเป็นดังนี้:
strSQL = "ใส่ค่าบุคคล (ชื่อ) ("" . $_POST["FirstName"] . "")"
ในทำนองเดียวกัน คุณสามารถขอข้อมูลจากคุกกี้ เซสชันสตริงการสืบค้น ฯลฯ
ข้อผิดพลาดเริ่มต้นที่พบบ่อยที่สุด
ในตอนแรก คุณอาจได้รับข้อความแสดงข้อผิดพลาดมากมายเมื่อคุณพยายามอัปเดตฐานข้อมูล เมื่อทำงานกับฐานข้อมูลจะไม่อนุญาตให้มีข้อผิดพลาดใดๆ เลย เครื่องหมายจุลภาคไม่ถูกต้องอาจหมายความว่าฐานข้อมูลไม่ได้รับการอัพเดต และคุณจะได้รับข้อความแสดงข้อผิดพลาด ด้านล่างนี้เราจะอธิบายข้อผิดพลาดที่พบบ่อยที่สุด
ประเภทข้อมูลไม่ถูกต้อง
สิ่งสำคัญคือข้อมูลและประเภทข้อมูลของคอลัมน์ต้องตรงกัน แต่ละคอลัมน์สามารถมีข้อมูลบางประเภทได้
ภาพหน้าจอต่อไปนี้แสดงประเภทข้อมูลของตาราง "บุคคล" จากตัวอย่างของเรา | ข้อผิดพลาดจะเกิดขึ้นหากคุณพยายามแทรกข้อความหรือตัวเลขลงในช่องข้อมูล ดังนั้นควรตั้งค่าประเภทข้อมูลให้แม่นยำที่สุด | ประเภทข้อมูลที่พบบ่อยที่สุดมีดังต่อไปนี้: |
---|---|---|
ความหมาย |
ข้อความหรือการรวมกันของข้อความและตัวเลข ยังสามารถใช้กับตัวเลขที่ไม่ได้ใช้ในการคำนวณ (เช่น หมายเลขโทรศัพท์) | สูงสุด 255 อักขระ - หรือความยาวที่ระบุใน "ความยาว" |
ข้อความ |
บล็อกข้อความขนาดใหญ่หรือข้อความและตัวเลขผสมกัน | สูงสุด 65,535 อักขระ |
อินเตอร์เนชั่นแนล |
ข้อมูลตัวเลขสำหรับการคำนวณทางคณิตศาสตร์ | 4 ไบต์ |
วันที่ |
วันที่ในรูปแบบ ปปปป-ดด-วว | 3 ไบต์ |
เวลา |
เวลาในรูปแบบ hh:mm:ss | 3 ไบต์ |
วันที่และเวลา |
วันที่และเวลาในรูปแบบ YYY-MM-DD hh:mm:ss | 8 ไบต์ |
คำสั่ง SQL ที่มีเครื่องหมายคำพูดหรือแบ็กสแลช
ถ้าคุณพยายามแทรกข้อความที่มีเครื่องหมายคำพูดเดี่ยว ("), เครื่องหมายคำพูดคู่ (") หรือเครื่องหมายแบ็กสแลช (\) ระเบียนจะไม่ถูกแทรกลงในฐานข้อมูล วิธีแก้ไขคือการแทนที่เครื่องหมายแบ็กสแลชหน้าอักขระที่ต้องจำเมื่อแทรกลงในแบบสอบถามฐานข้อมูล
ในโพสต์นี้ฉันอยากจะบอกคุณว่า วิธีการถ่ายโอนข้อมูลที่ป้อนลงในแบบฟอร์มไปยังฐานข้อมูล- ดังนั้นเราจึงสร้างแบบฟอร์มง่ายๆ โดยเราจะมีสองฟิลด์: ชื่อผู้ใช้และอีเมลของเขา:
แบบฟอร์มนี้สามารถใช้เพื่อลงทะเบียนผู้ใช้ใหม่ ส่งข่าวสาร รวบรวมสถิติ หรือเพื่ออะไรก็ได้... โดยทั่วไปผู้ใช้จะป้อนข้อมูลลงในแบบฟอร์มนี้ ชื่อและอีเมล คลิกที่ปุ่ม จากนั้นข้อมูล เข้าสู่สคริปต์ 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 "เกิดข้อผิดพลาด โปรดลองอีกครั้ง"; )
อย่างที่คุณเห็นไม่มีอะไรซับซ้อน! หากจำเป็น คุณสามารถเพิ่มฟิลด์อื่น และอีกฟิลด์หนึ่ง และอีกฟิลด์...
อัปเดตครั้งล่าสุด: 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