drop table if exists t1,t2; create table t1 ( a int primary key, b char(10) ); insert into t1 values (1,'one'); insert into t1 values (2,'two'); insert into t1 values (3,'three'); insert into t1 values (4,'four'); set @a=2; prepare stmt1 from 'select * from t1 where a <= ?'; execute stmt1 using @a; a b 1 one 2 two set @a=3; execute stmt1 using @a; a b 1 one 2 two 3 three deallocate prepare no_such_statement; ERROR HY000: Unknown prepared statement handler (no_such_statement) given to DEALLOCATE PREPARE execute stmt1; ERROR HY000: Incorrect arguments to EXECUTE prepare stmt2 from 'prepare nested_stmt from "select 1"'; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"select 1"' at line 1 prepare stmt2 from 'execute stmt1'; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'stmt1' at line 1 prepare stmt2 from 'deallocate prepare z'; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'z' at line 1 prepare stmt3 from 'insert into t1 values (?,?)'; set @arg1=5, @arg2='five'; execute stmt3 using @arg1, @arg2; select * from t1 where a>3; a b 4 four 5 five prepare stmt4 from 'update t1 set a=? where b=?'; set @arg1=55, @arg2='five'; execute stmt4 using @arg1, @arg2; select * from t1 where a>3; a b 4 four 55 five prepare stmt4 from 'create table t2 (a int)'; execute stmt4; prepare stmt4 from 'drop table t2'; execute stmt4; execute stmt4; ERROR 42S02: Unknown table 't2' prepare stmt5 from 'select ? + a from t1'; set @a=1; execute stmt5 using @a; ? + a 2 3 4 5 56 execute stmt5 using @no_such_var; ? + a NULL NULL NULL NULL NULL set @nullvar=1; set @nullvar=NULL; execute stmt5 using @nullvar; ? + a NULL NULL NULL NULL NULL set @nullvar2=NULL; execute stmt5 using @nullvar2; ? + a NULL NULL NULL NULL NULL prepare stmt6 from 'select 1; select2'; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; select2' at line 1 prepare stmt6 from 'insert into t1 values (5,"five"); select2'; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; select2' at line 1 explain prepare stmt6 from 'insert into t1 values (5,"five"); select2'; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from 'insert into t1 values (5,"five"); select2'' at line 1 create table t2 ( a int ); insert into t2 values (0); set @arg00=NULL ; prepare stmt1 from 'select 1 FROM t2 where a=?' ; execute stmt1 using @arg00 ; 1 prepare stmt1 from @nosuchvar; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NULL' at line 1 set @ivar= 1234; prepare stmt1 from @ivar; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1234' at line 1 set @fvar= 123.4567; prepare stmt1 from @fvar; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '123.4567' at line 1 set @str1 = 'select ?'; set @str2 = convert(@str1 using ucs2); prepare stmt1 from @str2; execute stmt1 using @ivar; ? 1234 drop table t1,t2; PREPARE stmt1 FROM "select _utf8 'A' collate utf8_bin = ?"; set @var='A'; EXECUTE stmt1 USING @var; _utf8 'A' collate utf8_bin = ? 1 DEALLOCATE PREPARE stmt1; create table t1 (id int); prepare stmt1 from "select FOUND_ROWS()"; select SQL_CALC_FOUND_ROWS * from t1; id execute stmt1; FOUND_ROWS() 0 insert into t1 values (1); select SQL_CALC_FOUND_ROWS * from t1; id 1 execute stmt1; FOUND_ROWS() 1 execute stmt1; FOUND_ROWS() 0 deallocate prepare stmt1; drop table t1; set @arg00=1; prepare stmt1 from ' create table t1 (m int) as select 1 as m ' ; execute stmt1 ; select m from t1; m 1 drop table t1; prepare stmt1 from ' create table t1 (m int) as select ? as m ' ; execute stmt1 using @arg00; select m from t1; m 1 drop table t1;