mysql 語句傳參數 — prepare語句的用法

  • 2019 年 12 月 18 日
  • 筆記

mysql默認在語句是不能傳參數的,例如 select * from a limit @a,@b;這樣是會報錯的,那怎麼樣才能傳參數呢?

這就需要用到prepare了,以下示例運行在存儲過程

PREPARE statement_name FROM preparable_SQL_statement;/*定義*/     EXECUTE statement_name [USING @var_name [, @var_name] ...]; /*執行預處理語句*/      {DEALLOCATE | DROP} PREPARE statement_name /*刪除定義*/ ;    -- 實例            set @a=1;          set @b=10;  	PREPARE s1 FROM 'select * from a limit ?,?';  	EXECUTE s1 USING @a,@b;  	DEALLOCATE PREPARE s1;

是不是很簡單?只要在需要傳參數的地方寫成一個?符號,不需要加引號,然後只要一個一個按照順序填在using後面按逗號分隔就行了