php - คำสั่ง Update สร้างข้อผิดพลาดเมื่อกำหนดค่าว่าง
one text
มือใหม่และมีปัญหากับ PDO/SQL และได้ร่างคำสั่งอัปเดต sql ซึ่งทำให้เกิดข้อผิดพลาดร้ายแรง ฉันกำลังมองหาความช่วยเหลือในการทำความเข้าใจและแก้ไขข้อผิดพลาด ฉันได้ตรวจสอบไวยากรณ์ของฉันแล้วและดูเหมือนว่าถูกต้อง แต่ฉันยังใหม่อยู่ ดังนั้นแม้แต่สิ่งที่ชัดเจนก็อาจอยู่เหนือฉันในบางครั้ง
นี่คือคำสั่งที่สร้างข้อผิดพลาดร้ายแรง SQLSTATE [42000]
$sql = "UPDATE `frm_THREAD`
SET
`charID` = :charID,
`modID` = :modID,
`userID` = :userID,
`catID` = :catID,
`groupID` = :groupID,
`eventID` = :eventID,
`eventID` = :eventID,
`factionID = :factionID
WHERE `threadID` = :threadID; ";
SQL สร้างข้อผิดพลาดร้ายแรงต่อไปนี้:
ข้อผิดพลาดร้ายแรง: Uncaught PDOException: SQLSTATE[42000]: ข้อผิดพลาดทางไวยากรณ์หรือการละเมิดการเข้าถึง: 1064 คุณมีข้อผิดพลาดในไวยากรณ์ SQL ของคุณ; ตรวจสอบคู่มือที่สอดคล้องกับเวอร์ชันเซิร์ฟเวอร์ MySQL ของคุณสำหรับไวยากรณ์ที่ถูกต้องเพื่อใช้ใกล้กับ \'storyID= ?,
teamID= ? WHERE
threadID` = ?\' ที่บรรทัดที่ 11
หากฉันอ่านข้อผิดพลาดถูกต้อง นี่คือบรรทัดที่ #11: `factionID = :factionID,
\ nในความพยายามที่จะแก้ไขข้อผิดพลาดนี้ ฉันได้อ่านคู่มือแล้ว และดูเหมือนว่า snytax ของฉันถูกต้อง ฉันได้ googled ไปสองสามชั่วโมงและอ่านบทความมากมายเกี่ยวกับปัญหานี้ใน StackOverflow ทุกสิ่งที่ฉันดูบ่งชี้ว่าฉันเขียน sql ถูกต้องแล้ว แต่ข้อผิดพลาดยังคงอยู่ ดังนั้นฉันจึงไม่เห็นบางสิ่งอย่างชัดเจนหรือไม่เข้าใจบางสิ่งเนื่องจากการทดสอบของฉันล้มเหลว
ฉันได้ทำการ var dump ค่าทั้งหมดแล้ว และมีดังนี้ ค่าที่มีการอ่านค่าเป็นศูนย์ (ซึ่งฉันเชื่อว่าว่างเปล่า \'\'/ไม่มีค่าที่กำหนด) คือจุดที่ข้อผิดพลาดของ sql ออกมา
$threadID = 6; # var_dump result
$charID = 38;# \'\'
$modID = 3; # \'\'
$userID = 3; # \'\'
$catID = 0; # \'\'
$groupID = 0; # \'\'
$eventID = 0; # \'\'
$factionID = 0; # \'\'
$storyID = 0; # \'\'
$teamID = 0; # var_dump result\ n
ฉันได้ก้าวผ่าน sql ของฉันแล้ว ตรวจสอบทั้งหมด ขีดหลัง และ เครื่องหมายจุลภาค และ เครื่องหมายเท่ากับ และชื่อเอนทิตีนั้นถูกต้อง ดูเหมือนทุกอย่างจะปกติดี แต่ฉันได้รับข้อผิดพลาดข้างต้นและหวังว่าจะมีคนช่วยค้นหาข้อผิดพลาดของฉัน ขอขอบคุณล่วงหน้าสำหรับความช่วยเหลือใดๆ ฉันยังใหม่ แต่ฉันกำลังพยายามและได้ศึกษาเรื่องนี้มาเล็กน้อยก่อนที่จะขอความช่วยเหลือ
ขอบคุณ
Source