建立複雜查詢時,通常需要動態指定表名。但是,使用原始文字連接可能會導致語法錯誤和漏洞。本文研究了使用準備好的語句的替代方法,並為您遇到的特定錯誤提供了逐步解決方案。
遇到的錯誤
錯誤[ Err] 1064 - 您的SQL 語法有錯誤...發生是因為MySQL 無法直接計算使用原始文字連接建構的表名。
解決方案:準備好的語句
準備好的語句可讓您動態建立和執行查詢,同時確保 SQL 語法保持有效。以下是如何使用它們來解決您的錯誤:
定義動態表名稱:
SET @id := '47'; SET @table := concat(@id, '_2013_2014_voucher');
建構查詢字串:
SET @qry1 := concat('select * from ', @table);
準備語句:
prepare stmt from @qry1;
execute stmt;
SET @qry2 := concat('DELETE FROM ', @table, ' WHERE>
以上是如何在SQL語句中動態指定表名?的詳細內容。更多資訊請關注PHP中文網其他相關文章!