วิธีบันทึก zrobiti ไปยังฐานข้อมูล MySQL แฮ็คโค้ด PHP โดยเฉพาะอย่างยิ่งบทเรียนจะดีสำหรับผู้เริ่มต้น การเพิ่มข้อมูลใน SQL ผ่านแบบฟอร์ม html

โกลอฟน่า / ฟังก์ชันเพิ่มเติม

รหัสผู้แต่ง:เอ๊ะ คุณไม่สบถสักคำ! Ale їхที่คุณเห็น noviti chi แทรกіnshі Golovna ว่าคำนั้นถูกนำไปที่ฐานของข้อมูล วันนี้เรารู้วิธีบันทึกข้อมูล MySQL และวิธีการทำอย่างถูกต้องเพื่อให้เพลงฟัง!

การเพิ่มบันทึกสำหรับความช่วยเหลือ phpMyAdmin

ในเชลล์ phpMyAdmin สำหรับการดูแลระบบ MySQL DBMS มีการใช้งานฟังก์ชันที่ "ง่ายขึ้น" เพื่อเพิ่มระเบียนใหม่ในตารางฐานข้อมูล เนื่องจากความเรียบง่าย ไวน์จึงเหมาะอย่างยิ่งสำหรับทั้งกาน้ำชาสีเขียวและผู้เชี่ยวชาญด้านน้ำแข็งเย็น

หากต้องการเพิ่มข้อมูลใหม่ลงในตาราง ให้ไปที่โปรแกรมที่มีสิทธิ์ของผู้ดูแลระบบ เลือกฐานข้อมูลและตารางจากรายการ หลังจากนั้นไปที่เมนูด้านบนผ่านรายการ "แทรก"

หลังจากนั้น เพื่อสร้างบันทึกในฐานข้อมูล MySQL ระบบจะโหลดรายการทั้งหมดในฟิลด์ "ค่า" ในสัปดาห์ที่จะมาถึง และคลิก "ตกลง" ที่ด้านล่าง

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

หากต้องการทราบว่าฟิลด์บันทึกข้อมูล MySQL เป็นคีย์หลัก ใน phpMyAdmin ให้ไปที่เมนู (เมื่อดูตารางในรายการ) ไปที่แท็บเมนูด้านบน "โครงสร้าง" ที่นี่มีคำอธิบายของเขตข้อมูลทั้งหมดของตาราง ประเภทและคุณลักษณะเพิ่มเติม

การแทรกข้อมูลเพื่อขอความช่วยเหลือเกี่ยวกับแบบสอบถาม SQL

แต่ phpMyAdmin เป็นเพียงเชลล์ และผู้ดูแลระบบที่เหมาะสม "สื่อสาร" กับเซิร์ฟเวอร์ MySQL เพื่อขอโครงสร้างเพิ่มเติม Tobto "rozmovlyayut" คือเขา SQL ของฉัน ดังนั้น เมื่อเรา pragnemo กลายเป็นมืออาชีพที่ผ่านการรับรอง เราจะ "ยุ่ง" กับการเรียนรู้คำสั่ง SQL ภายในกรอบของคำสั่งที่กำลังพิจารณาอยู่ Axis zap เมื่อป้อนฟิลด์ SQL เดียวกัน คุณจะสร้างฐานข้อมูลเดียวกัน:

สร้างตารางสัตว์ (ID MEDIUMINT ไม่เป็น NULL AUTO_INCREMENT, ชื่อ CHAR(30) ไม่เป็น NULL, คีย์หลัก (id));

สร้างตารางสัตว์ (ID MEDIUMINT ไม่เป็นโมฆะ AUTO_INCREMENT ,

ชื่อ CHAR (30) ไม่เป็นโมฆะ คีย์หลัก (id));

หลังจากสร้างตารางและบันทึกข้อมูลในฐานข้อมูล MySQL (ผ่านแท็บ "แทรก") โปรแกรมจะบอกคุณว่าในสัตว์มีการเพิ่มค่า 3 แถวของตัวระบุ 1 .

ต้องการรหัส:

INSERT INTO `my_db1`.`animal` (`id`, `name`) ค่า (NULL, "Cat");

แทรกลงใน `my_db1` `สัตว์` (`id`, `ชื่อ`) ค่า (NULL, "แมว");

มาพูดถึงโยคะกันเถอะ SQL ใช้คำสั่ง INSERT เพื่อแทรกแถวใหม่ลงในตาราง Win บอกเซิร์ฟเวอร์ว่าต้องใส่ตารางฐานข้อมูล (my_db1 . animal) ลงในช่อง id และชื่อด้วยค่า (VALUES (NULL, 'Cat'))

เพื่อให้แน่ใจว่าค่ารหัสไม่ได้ระบุด้วยค่าตัวเลข แต่ระบุด้วยค่า NULL ชาร์ดสำหรับฟิลด์นี้ได้รวมการเติมข้อความอัตโนมัติ (การเพิ่มอัตโนมัติ)

วิธีแทรกบันทึกสำหรับความช่วยเหลือ PHP

ลองดูทุกอย่าง - เป็นเพียง "บทนำ" ของการกระทำหลักเพื่อเข้าสู่ขั้นตอนของภาษา PHP สำหรับเซิร์ฟเวอร์ระดับสูงใหม่ ตัวเอง zavdyaki yomu MySQL เป็น DBMS nabula ที่หลากหลายใน Merezh
ที่การเชื่อมโยงระหว่างสองเทคโนโลยีอินเทอร์เน็ต อินเทอร์เน็ตส่วนใหญ่เกิดขึ้นจากโลกทั้งหมด ไม่ว่าคุณจะมองไปทางไหน คุณจะรู้จักพวกเขาอย่างแน่นอน: CMS ที่ทันสมัย ​​เอ็นจิ้น "เขียนเอง" อยู่บนเซิร์ฟเวอร์

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

$con_str=mysql_connect("localhost", "root", "", "db1"); if(mysql_connect("localhost","root"))( echo "สวัสดี!!"; ) mysql_select_db("db1",$con_str); $query_str="INSERT INTO `db1`.`animal` (`id`, `name`) VALUES (NULL, "dog")"; mysql_query($query_str); mysql_close();

$ con_str = mysql_connect("localhost", "root", "", "db1");

ถ้า (mysql_connect("localhost", "root")) (

ก้อง "ฮัลโหล!!" ;

mysql_select_db("db1", $con_str);

$query_str = "INSERT INTO `db1`.`animal` (`id`, `name`) ค่า (NULL, "dog")";

mysql_query($query_str);

mysql_close();

ต้องใส่รหัสนี้ลงในไฟล์ PHP และแจกจ่ายทางฝั่งเซิร์ฟเวอร์

สำหรับความช่วยเหลือของฟังก์ชัน mysql_connect() เราเชื่อมต่อกับเซิร์ฟเวอร์ฐานข้อมูล MySQL ในฐานะที่เป็นอาร์กิวเมนต์ ฟังก์ชันยอมรับโฮสต์ ชื่อของ DBMS รหัสผ่าน และฉันจะตั้งชื่อฐาน จนกว่าจะจำเป็นต้องเชื่อมต่อ เราได้ระบุรหัสผ่านที่ว่างเปล่า ชิ้นส่วนของเซิร์ฟเวอร์ที่ได้รับชัยชนะของฉัน การติดตั้งบนเครื่อง (ไคลเอนต์) ภายในเครื่อง

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

ลองใช้ลอจิคัลบล็อกหากเราเข้าใจผิดว่ามีการเชื่อมต่อกับเซิร์ฟเวอร์ฐานข้อมูล เนื่องจากฟังก์ชัน mysql_select_db() ได้กำหนดฐานก่อนที่เราจะเชื่อมต่อได้ สำหรับความช่วยเหลือจากฟังก์ชัน mysql_query () เราเปิดการสืบค้น SQL โดยเขียนไปที่ $query_str ตัวอย่างเช่น เซสชันถูกปิด (ฟังก์ชัน mysql_close()) เมื่อเรามองดูโลกของสัตว์ (ตารางสัตว์) เราจะเห็น "ไวโฮวาเนต" ใหม่ที่นั่น

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

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

เช่นเดียวกับ bachite สำหรับความช่วยเหลือจาก MySQL คุณสามารถเลือกสัตว์ร้ายของคุณเองและเปลี่ยนคำให้ถูกต้องไม่ว่าจะเป็นเพลง และสำหรับการเขียนไปยังฐานข้อมูล MySQL PHP นั้นเหมาะอย่างยิ่ง ด้วยเหตุนี้ เพื่อประโยชน์ของคุณ คุณสามารถสร้างมิตรภาพที่ "กดดัน" จากศูนย์กลางของการเขียนโปรแกรมที่ "ยอดเยี่ยม" ของฉันได้!

คุณจะได้รู้จักเขาด้วยตัวช่วยของคุณ วิธีเริ่ม cherubing ฐานข้อมูลจากคุณ พี.เอช.พีสคริปต์ คุณเห็น การเพิ่มบันทึกลงในตาราง MySQLผู้มีสิทธิ์เลือกตั้ง รหัส php.ini. ก่อนหน้านั้น ลองตรวจสอบตัวช่วยอื่นๆ ของเรา วิธีเปิดขั้นตอนหลักในการทำงานกับ PHP และฐานข้อมูล - การเชื่อมต่อจาก PHP ไปยังฐานข้อมูล MySQL (ภาษาอังกฤษ)

ก่อนซังให้กลับด้านที่น่ารังเกียจ:

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

ครก 1 - การสร้างตาราง

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

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

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

วิธีที่ง่ายที่สุดในการสร้างตาราง เพื่อบันทึกข้อมูลเพิ่มเติมเกี่ยวกับโครงสร้างของตาราง / ฐานข้อมูล และวิธีการปรับแต่ง คุณสามารถปรับแต่งฟิลด์สกิน กลับไปที่เอกสารอย่างเป็นทางการของ phpMyAdmin (ภาษาอังกฤษ)

เราจะแนะนำคำอธิบายง่ายๆ สองสามข้อของฟิลด์นี้ เพื่อที่เราจะ vikoristovuvat:

  • ชื่อ- Tse im'ya จากสนามของคุณ จะแสดงที่ด้านบนของตารางของคุณ
  • พิมพ์– ที่นี่คุณสามารถกำหนดประเภทของฟิลด์ได้ ตัวอย่างเช่นเราเลือก วาร์ชาร์ที่นี่เราจำเป็นต้องแนะนำแถวของชื่อ (สำหรับผู้ที่มีตัวอักษรєไม่ใช่ตัวเลข)
  • ความยาว/ค่า– ชนะเพื่อบันทึกความยาวสูงสุดในฟิลด์นี้
  • ดัชนี– เราได้เลือกดัชนี "หลัก" สำหรับฟิลด์ "ID" ของเรา เมื่อพับตาราง แนะนำให้ใช้ฟิลด์ ID หนึ่งฟิลด์สำหรับแม่ ชนะvikoristovuєtsyaสำหรับіndexatsіїzapisіїในตารางหากตาราง vzaimosv'yazku พันกัน คุณยังสามารถดูได้ที่นี่ "AI"มันหมายความว่าอะไร การเพิ่มอัตโนมัติ. การตั้งค่านี้จะเพิ่มดัชนีโดยอัตโนมัติ (1,2,3,4…)

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

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

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

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

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

ในอันดับนี้ ส่วนแรกของรหัส (แถว 3 – 18 ) สามารถมองเห็นได้ถึงส่วนของการติดตั้งลิงค์ไปยังฐานข้อมูล เราจะไม่ผ่านส่วนนี้อีก ถ้าคุณต้องการทราบว่าแถวหนังหมายถึงอะไร ให้หันไปทางด้านหน้าของเรา ker_vnitstva เช่นเชื่อมต่อกับฐานของชาวเดนมาร์ก (ภาษาอังกฤษ)

มาเริ่มกันเลย 19 :

$sql = "แทรกเข้าไปในนักเรียน (ชื่อ นามสกุล อีเมล) VALUES ("Thom", "Vial", " [ป้องกันอีเมล]")";

แถวของรหัสที่สำคัญที่สุดในการทำงานคือทุกสิ่งที่เราอธิบายไว้ในความช่วยเหลือของเรา - การเพิ่มบันทึกในตาราง MySQL ไปยังฐานข้อมูล ใส่ลงใน- tse viraz ซึ่งเพิ่มบันทึกลงในตารางฐานข้อมูล MySQL ในแอปพลิเคชันของเรา เราเพิ่มข้อมูลลงในตาราง นักเรียน.

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

ก้าวต่อไปค่า ค่านิยม. ที่นี่เราตั้งค่าของเราก่อนฟิลด์ที่ระบุ ในอันดับนี้ ช่องผิวหนังจะรับรู้ถึงความหมายของมัน เช่น วิภัตติของเราจะมีตาอยู่ชั่วขณะหนึ่ง: ชื่อ=Thom, นามสกุล=Vial, อีเมล= [ป้องกันอีเมล] .

สิ่งสำคัญคือต้องพูด แบบฟอร์มของฉันที่นี่เป็นอย่างไร สอบถาม SQLแฮ็คโค้ด PHP SQL zapit vinni buti ukladenіในอุ้งเท้า ในกรณีของเรา ทุกอย่างอยู่ระหว่างอุ้งเท้าและหลัง $sql = tse SQL request

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

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

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

ฉันส่วนสุดท้าย ( 22 – 24 แถว) แสดงข้อมูลเพิ่มเติมในขณะที่ดูคำขอของเราโดยไม่ตั้งใจ:

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

รหัสนี้แสดงเตือนเราเกี่ยวกับการให้อภัย ราวกับว่ามีบางอย่างผิดพลาด

ตัวเลือก 2 - วิธีวัตถุข้อมูล PHP (P HP Data 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 ของSkіlkiนั้นถูกต้องตามวากยสัมพันธ์ซึ่งเป็นจุดที่ต้องปล้น วางฐานข้อมูล user_tableคำขอ SQL ใหม่ และสารบัญของคุณถูกลบไปแล้ว วิราซี เตรียมพร้อม ไม่อนุญาตให้ใช้สัญลักษณ์ і ; เพื่อดำเนินการตามคำขอออกคำสั่งนั้น วางฐานข้อมูลไม่มีใครชนะ

ซาฟจดีเอาชนะสิ่งที่คุณกำลังเตรียมหากคุณจัดการหรือรับข้อมูลจากฐานข้อมูลจาก PDO

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

รหัสที่ดูถูกต้องมีลักษณะดังนี้:

$servername = "mysql.hostinger.com"; $database = "u266072517_name"; $ชื่อผู้ใช้ = "u266072517_user"; $password = "ซื้อของ"; $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 "ข้อผิดพลาดในการเชื่อมต่อ: " . $error->getMessage(); ) // ตั้งค่าพารามิเตอร์สำหรับคนที่จะเปลี่ยนเป็น 데이터베이스 $first_Name = "Thom"; $last_Name = "ขวด"; $อีเมล = " [ป้องกันอีเมล]"// ที่นี่ เราทำรูปแบบที่เรียกวิธีการเตรียมการ () ของวัตถุฐานข้อมูล // SQL SQL ค้นหาสิ่งที่คุณเลือกเพื่อตั้งค่าเป็นพารามิเตอร์ และตัวยึดจะเหมือนกับ: placeholder_name $my_Insert_Statement = $my_Db_Connection-> จัดเตรียม (" INSERT INTO Students (ชื่อ, นามสกุล, อีเมล) VALUES (:first_name, :last_name, :email)"); // ตอนนี้เราจะบอกสคริปต์ว่าตัวแปรตัวยึดตำแหน่งแต่ละตัวอ้างถึงโดยใช้เมธอด bindParam() // พารามิเตอร์ตัวแรก เป็นตัวยึดตำแหน่งในคำสั่งด้านบน - พารามิเตอร์ตัวที่สองคือตัวแปรที่ควรอ้างถึง $my_Insert_Statement->bindParam(:first_name, $first_Name); bindParam(:email, $email); $my_Insert_Statement->execute()) ( echo "บันทึกใหม่ สร้างเรียบร้อยแล้ว "; ) el se (echo "Unable to create record"; ) // ณ จุดนี้ คุณสามารถเปลี่ยนข้อมูลเกี่ยวกับตัวแปรและดำเนินการเป็นข้อมูลที่ใหญ่ขึ้นไปยังฐานข้อมูล $first_Name = "John"; $last_Name = "Smith" ; $อีเมล = " [ป้องกันอีเมล]$my_Insert_Statement->ดำเนินการ (); // ดำเนินการอีกครั้งเมื่อตัวแปรมีการเปลี่ยนแปลง if ($my_Insert_Statement->execute()) ( echo "สร้างระเบียนใหม่สำเร็จ"; ) อื่น ( echo "ไม่สามารถสร้างบันทึก"; )

ในแถวที่ 28, 29 และ 30 ไมล์ วิธี vikoristovuemo bindParam()วัตถุฐานข้อมูล Єวิธีการด้วยตนเอง ค่าผูก ()ซึ่งมองเห็นได้จากด้านหน้า

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

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

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

ครก 3

ทันทีที่มีการถามซึ่งเราเปิดตัวในฐานข้อมูล MySQL เมื่อทำสำเร็จแล้ว เราขอเตือนคุณว่า:

วิสัยทัศน์ของการให้อภัยที่กว้างขึ้น

MySQLi

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

เช่นเดียวกับ Bachimo ส่วนแรกของรหัสนั้นปลอดภัย การเชื่อมต่อได้รับการติดตั้งสำเร็จ แต่ SQL ถูกโหลดเป็นเวลาหนึ่งชั่วโมงและล้มเหลว

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

อนุญาตให้ให้อภัยได้ทางวากยสัมพันธ์ จามรีเพื่อให้เกิดความล้มเหลวในตอนท้ายของสคริปต์ของเรา ขออภัยโทษที่นี่:

$sql = "แทรกเข้าไปในนักเรียน (ชื่อ นามสกุล อีเมล) VALUES ("Thom", "Vial", " [ป้องกันอีเมล]")";

คุณทำ bachite ได้อย่างไร mi vikoristovuєmoคิดส่วนโค้งแทนที่จะเป็นแบบกลม นี่ไม่ใช่วิธีที่จะนำมาซึ่งการให้อภัยทางวากยสัมพันธ์ในสคริปต์ของเรา

สพป

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

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

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

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

การให้อภัยทั้งหมดสามารถแก้ไขและเสริมด้วยความช่วยเหลือในการแก้ไขการให้อภัย หรือดูบันทึกการให้อภัย (ภาษาอังกฤษ)

หลังจากกรอกข้อมูลสำเร็จแล้ว เราเป็นหนี้ฐานข้อมูลของเรา แกนก้นโต๊ะใน yaku เราเพิ่มข้อมูลของเราราวกับว่าประหลาดใจ phpMyAdmin.

วิสโนวอค

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

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

ครก 1 - การสร้างตาราง

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

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

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

พารามิเตอร์Stovptsіv:

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

ครก 2. การเขียนโค้ด PHP สำหรับใส่ข้อมูล MySQL

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

จำเป็นต้องติดตั้งฐานข้อมูลด้วยฐานข้อมูล หลังจากนั้น INSERT แบบสอบถาม SQL ตัวอย่างรหัสใหม่:

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

ส่วนแรกของรหัส (แถว 3-18) เป็นที่รู้จักสำหรับการเชื่อมต่อกับฐานข้อมูล

คำสั่ง Pochnemo หมายเลข 19:

$sql = "แทรกเข้าไปในนักเรียน (ชื่อ นามสกุล อีเมล) VALUES ("Thom", "Vial", " [ป้องกันอีเมล]")";

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

Dalі ide perekhuvannya stovptsіv, ในค่าแทรก yaki: ชื่อ, นามสกุล, อีเมล ข้อมูลจะถูกเพิ่มตามลำดับที่กำหนด Yakby ที่เราเขียน (อีเมล, นามสกุล, ชื่อ) ค่าจะถูกเพิ่มตามลำดับที่แตกต่างกัน

ส่วนถัดไปคือตัวดำเนินการ VALUES ที่นี่เราสามารถระบุความหมายของโพสต์: ชื่อ = Thom, นามสกุล = ขวด, อีเมล = [ป้องกันอีเมล]

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

ถ้า (mysqli_query($conn, $sql)) ( echo "New recordcreatedsuccessfully"; )

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

ส่วนที่เหลือІ (แถว 22 - 24) ในรูปแบบของการเตือนราวกับว่าไม่สำเร็จ:

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

ตัวเลือก 2 - วิธีการวัตถุข้อมูล PHP (PDO)

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

$the_Object->the_Method();

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

เนื่องจากรหัส SQL นั้นถูกต้องตามไวยากรณ์ ประเด็นก็คือการ DROP DATABASE user_table ด้วยแบบสอบถาม SQL ใหม่ และตารางจะมองเห็นได้ ไม่อนุญาตให้มีการเตรียม virazi (pov'yazanіzminnі) เพื่อให้จุดที่มีอาการโคม่าและอุ้งเท้าทำเครื่องดื่มที่เหลือให้เสร็จ ดังนั้นคำสั่ง DROP DATABASE จะไม่มีวันพ่ายแพ้

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

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

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

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

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

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

Krok 3 - การยืนยันผลสำเร็จและการแก้ไขปัญหา

ทันทีที่เราขอแทรกแถวที่ฐาน เราจะทำสำเร็จ เราขอเตือนคุณ:

Usunennya ขอโทษอย่างกว้างๆ

MySQLi

สำหรับอารมณ์อื่น ๆ จะมีการเตือนความจำเกี่ยวกับการให้อภัย ตัวอย่างเช่น ลองเพิ่มประโยคประโยคขออภัยในโค้ด และเราจะใช้สิ่งนี้:

ส่วนแรกของโค้ดเป็นไปตามลำดับ ติดตั้งข้อมูลสำเร็จแล้ว แต่คิวรี SQL ไม่ผ่าน

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

Bulo อนุญาตให้ใช้วากยสัมพันธ์ จามรีเรียกสคริปต์ ขออภัยโทษที่นี่:

$sql = "แทรกเข้าไปในนักเรียน (ชื่อ นามสกุล อีเมล) VALUES ("Thom", "Vial", " [ป้องกันอีเมล]")";

เราได้รับชัยชนะจากการโค้งคำนับแทนคันธนูที่ยิ่งใหญ่ ไม่เป็นเช่นนั้น และสคริปต์เห็นการให้อภัยทางวากยสัมพันธ์

สพป

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

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

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

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

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

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

วิสโนวอค

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

สิ่งพิมพ์ได้รับการแปลของบทความ " วิธีใช้ PHP เพื่อแทรกข้อมูลลงในฐานข้อมูล MySQL» จัดทำโดยทีมงานที่เป็นมิตรต่อโครงการ

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

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


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

$ชื่อ = $_POST["ชื่อ"]; $email = $_POST["อีเมล"]; $result = mysqli_query("INSERT INTO user (name, email) VALUES ("$name", "$email")"); if ($result) ( echo "บันทึกสำเร็จแล้ว!"; ) else ( echo "ขออภัย โปรดลองใหม่อีกครั้ง"; )


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

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


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

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


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

บันทึกข้อมูลสำเร็จแล้ว!


ตามความเป็นจริงเนื่องจากปัญหาและไม่ได้ป้อนข้อมูลเราจำเป็นต้องเตือนคุณเกี่ยวกับการให้อภัย:

มีการให้อภัยใจดีทดสอบซ้ำ


จากฉันทั้งหมด!

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

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

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


เพิ่ม:

ตำแหน่งของคุณ:


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

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


เพิ่ม:

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


และแน่นอน ตามคำขอ เพิ่มเหมือนกัน แกนเป็นดังนี้:

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


แกนของสิ่งที่เห็นได้ในผลลัพธ์:
แบบฟอร์มการสมัคร:

ชื่อของคุณ:
อีเมลของคุณ:
ตำแหน่งของคุณ:


สคริปต์:

$ชื่อ = $_POST["ชื่อ"]; $email = $_POST["อีเมล"]; $city = $_POST["เมือง"]; $result = mysqli_query("INSERT INTO user (ชื่อ, อีเมล, เมือง) VALUES ("$name", "$email", "$city")"); if ($result == true) ( ​​echo "บันทึกสำเร็จแล้ว!"; ) อื่น ( echo "ขออภัย โปรดลองใหม่อีกครั้ง"; )


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

อัปเดตล่าสุด: 1.11.2015

ในการเพิ่มสิ่งเหล่านี้แทน จะใช้ "INSERT" viraz:

$query ="INSERT INTO products VALUES(NULL, "Samsung Galaxy III","Samsumg")";

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

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

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

ทีนี้มาดูการเพิ่มข้อมูลจากก้นกัน มาสร้างไฟล์กันเถอะ create.phpด้วยการมารวมกัน:

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

เพิ่มโมเดลใหม่

ใส่รุ่น:

วิโรบนิก:

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

ความปลอดภัยของ MySQL

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

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

© 2023 androidas.ru - ทั้งหมดเกี่ยวกับ Android