รายละเอียดของการตอบ ::
ผมเอาภาพ database มาให้ดูนะครับ เพราะไม่รู้จะอธิบายถูกไหม
ทั้งหมดนี้เป็นแบบฟอร์มสมัครสมาชิกนะครับ
รูปข้างบนคือ table สำหรับ username นะครับ อยากเอา keyname ใส่ไว้ตรงกรอบสีแดงของรูปข้างบนอะครับ
Code
$sql = Db::instance()->prepare('SELECT m.username FROM member AS m, keygen AS k WHERE ( m.username = ? OR m.email = ? ) AND k.keyname = ? LIMIT 1', array( $username, $email, $keygen ));
m.username และ m.email : 2 ตัวนี้สามารถตรวจสอบได้ครับว่ามี Uername หรือ Email นี้หรือยัง
แต่พอถึงฟิล keyname มันกลับกลายเป็นค่า Null ครับ ขึ้น Notice: Trying to get property of non-object
ซึ่งมันไม่สามารถเรียกฟิล keyname มาเช็คไม่ได้อะครับ
แต่พอเขียนแบบนี้
$sql = Db::instance()->prepare('SELECT username FROM member WHERE username = ? OR email = ? LIMIT 1', array( $username, $email ));
$qrcheck = $sql->fetch(PDO::FETCH_OBJ);
$sql2 = Db::instance()->prepare('SELECT * FROM keygen WHERE keyname = ? LIMIT 1', array( $keygen ));
$qrcheck2 = $sql2->fetch(PDO::FETCH_OBJ);
กลับสามารถตรวจเช็คได้สะงั้น ไม่ทราบว่าผมต้องเขียนอย่างไรจึงจะถูกหลักครับ เพราะอยาก SELECT แค่ตัวเดียวอะครับ คือ $sql น่ะครับ
ในความคิดผมน่าจะ ค้นหาข้อมูลได้เร็วกว่า
ยังไงแนะนำด้วยนะครับ กำลังศึกษาอยู่ครับผม ขอบคุณครับ