ดังนั้นฉันจึงพบข้อผิดพลาดที่น่างง (เกิดจากโปรแกรมเมอร์) โดยฉันเป็นโปรแกรมเมอร์
ฉันได้สร้างเว็บไซต์พร้อมโปรไฟล์ผู้ใช้ โปรไฟล์ผู้ใช้มีหลายช่องและรูปภาพ รูปภาพถูกอัปโหลดได้ดี ขั้นแรกจะแปลงให้พอดีกับพื้นที่เฉพาะ
...
//ฉันกำลังอัพโหลดรูปภาพขึ้นฐานข้อมูล
imageConverter->loadImage($_FILE... blah balh).
...
เมื่อผู้ใช้ตัดสินใจ เพื่อเปลี่ยนข้อมูลของเขาเขาก็มีโอกาสที่จะเปลี่ยนภาพของเขาด้วย กระบวนการแก้ไขโปรไฟล์นั้นเหมือนกับกระบวนการเริ่มต้นโปรไฟล์ทุกประการ ข้อแตกต่างเพียงอย่างเดียวคือฉันตรวจสอบฟิลด์ที่เขา/เธออัปเดตทีละรายการ และเปลี่ยนบรรทัดนั้น int ฐานข้อมูล (เห็นได้ชัดว่าสามารถทำได้อย่างเหมาะสมที่สุด แต่ก่อนอื่นฉันต้องการให้มันทำงาน :))
ส่วนที่สับสนคือสิ่งนี้ เมื่อฉันแก้ไขข้อมูลโปรไฟล์ ลำดับจะเป็นดังนี้ ฉันใช้ MYSQLI ($this->mysqli->query($query))
สิ่งเหล่านี้ได้รับการแก้ไขในฐานข้อมูลหากมีการเปลี่ยนแปลง
- 1 ชื่อ
- 2 นามสกุล
- 3 รหัสผ่าน
- การตั้งค่าต่างๆ 4 แบบ (ช่องทำเครื่องหมาย / ปุ่มตัวเลือก)
- 5 อีเมล
- 6 รูปโปรไฟล์
- 7 อัปเดตข้อมูลเซสชันพร้อมแบบสอบถามไปยังฐานข้อมูลเพื่อรับข้อมูลอัปเดตมากที่สุด
ตอนนี้ #7 คืนค่าเท็จ (SELECT * FROM USERSINFO)
ตอนนี้ถ้าฉันเปลี่ยนลำดับการดำเนินการ
- 1 ชื่อ
- 2 นามสกุล
- 3 รหัสผ่าน
- การตั้งค่าต่างๆ 4 แบบ (ช่องทำเครื่องหมาย / ปุ่มตัวเลือก)
- 5 อีเมล
- 6 อัปเดตข้อมูลเซสชันพร้อมแบบสอบถามไปยังฐานข้อมูลเพื่อรับข้อมูลอัปเดตมากที่สุด
- 7 รูปโปรไฟล์
มันใช้งานได้ดี
มีคำตอบไหม? นี่หมายความว่าถ้ามีคน 1,000 คนพยายามใช้ฐานข้อมูลของฉันในคราวเดียว ข้อมูลทั้งหมดจะพังใช่หรือไม่
รหัสบางส่วน:
การแทรกรูปภาพ (ขั้นตอน #6 ในตัวอย่างที่ใช้งานไม่ได้, #7 ในตัวอย่างการทำงาน)
$this->mysqli->query("DELETE FROM ".DB_REVIEW_IMAGE_TABLE." WHERE email='$email'");
if ($this->mysqli->query("INSERT INTO ".DB_REVIEW_IMAGE_TABLE." VALUES('$email', '$content', '$imageType')"))
การอัปเดตข้อมูลผู้ใช้เป็นข้อมูลเซสชัน (ขั้นตอน #7 ในตัวอย่างที่ไม่ดี, #6 ในตัวอย่างการทำงาน)
$this->userInfo = $_SESSION_USER_INFO] = $database->getUserInfo($this->email);
ซึ่ง $ ฐานข้อมูล -> getUserInfo($this->อีเมล) == "SELECT ".DB_USERS_ALL_MOUNTAIN.", ".DB_USERS_BACK_COUNTRY.", ".DB_USERS_GROOMERS", ".DB_USERS_PARK.", ".DB_USERS_SEASON_DAYS.", ".DB_USERS_SEX" , ".DB_USERS_YEARS.", ".DB_USERS_FIRST_NAME.", ".DB_USERS_LAST_NAME.", ".DB_USERS_CITY.", ".DB_USERS_STATE" FROM ".DB_USER_INFO_TABLE.SQL_WHERE_EMAIL
ฉันชอบใช้ค่าคงที่ :) และ DB_USERS_SEX = ชายหรือหญิง (เผื่อไว้)
Michael