This error means that your SQL statement has ? parameters (placeholders for bound variables), but you didn't actually bind that many variables to the statement.
For example, if your SQL was:
SELECT * FROM users WHERE id = ? AND name = ?

Then you'd need to bind two variables to the statement - likely with a call like:
stmt.bind_param('ii', $id, $name)

But if you only bound one variable, you'd get this HY093 error since the number of bound variables (1) doesn't match the number of tokens (2) in the SQL.
So you just need to ensure you bind the correct number of variables to match the number of placeholders in your SQL statement.
 ข้อผิดพลาดนี้หมายความว่าคำสั่ง SQL ของคุณมี ? (ตัวยึดตำแหน่งสำหรับตัวแปรที่ถูกผูกไว้) แต่คุณไม่ได้ผูกตัวแปรจำนวนมากนั้นเข้ากับคำสั่ง ตัวอย่างเช่น หาก SQL ของคุณคือ: SELECT * FROM users WHERE id = ? และ ชื่อ = ? จากนั้นคุณจะต้องผูกตัวแปรสองตัวเข้ากับคำสั่ง - มีแนวโน้มที่จะมีการเรียกเช่น: stmt.bind_param('ii', $id, $name) แต่ถ้าคุณผูกตัวแปรเพียงตัวเดียว คุณจะได้รับข้อผิดพลาด HY093 นี้เนื่องจาก จำนวนตัวแปรที่ถูกผูกไว้ (1) ไม่ตรงกับจำนวนโทเค็น (2) ใน SQL ดังนั้นคุณเพียงแค่ต้องให้แน่ใจว่าคุณผูกตัวแปรในจำนวนที่ถูกต้องเพื่อให้ตรงกับจำนวนตัวยึดตำแหน่งในคำสั่ง SQL ของคุณ
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence