Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

อะไรคือความคล้ายคลึงกันระหว่างคำสั่งที่เตรียมไว้และตัวแปรผู้ใช้ MySQL?


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

อีกประการหนึ่งที่คล้ายคลึงกันคือคำสั่งที่เตรียมไว้นั้นไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เหมือนตัวแปรผู้ใช้ MySQL ตัวอย่างเช่น stmt11 และ STMT11 ทั้งคู่เหมือนกันดังที่แสดงในตัวอย่างต่อไปนี้ −

mysql> Select * from student;
+------+-------+
| Id   | Name  |
+------+-------+
| 1    | Ram   |
| 2    | Shyam |
| 3    | Rohan |
+------+-------+
3 rows in set (0.00 sec)

mysql> SET @A = 'Sohan', @B = 3;
Query OK, 0 rows affected (0.00 sec)

mysql> EXECUTE Stmt11 USING @A, @B;
Query OK, 1 row affected (0.12 sec)

mysql> Select * from Student;
+------+-------+
| Id   | Name  |
+------+-------+
| 1    | Ram   |
| 2    | Shyam |
| 3    | Sohan |
+------+-------+
3 rows in set (0.00 sec)

mysql> SET @A = 'Gaurav', @B = 3;
Query OK, 0 rows affected (0.00 sec)

mysql> EXECUTE STMT11 USING @A, @B;
Query OK, 1 row affected (0.04 sec)

mysql> Select * from Student;
+------+--------+
| Id   | Name   |
+------+--------+
| 1    | Ram    |
| 2    | Shyam  |
| 3    | Gaurav |
+------+--------+
3 rows in set (0.00 sec)

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