MySQL에서 PREPARE 문은 클라이언트/서버 바이너리 프로토콜을 활용하여 자리 표시자 "?"가 포함된 쿼리를 MySQL 서버에 전달할 수 있으며, 자리 표시자가 있는 쿼리를 실행하여 쿼리 속도를 높일 수 있습니다. ' 쿼리가 더 안전해졌습니다.
이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.
MySQL 버전 4.1 이전에는 쿼리가 텍스트 형식으로 MySQL 서버에 전송되었습니다. 그런 다음 MySQL 서버는 텍스트 프로토콜을 사용하여 클라이언트에 데이터를 반환합니다. MySQL은 쿼리를 완전히 구문 분석하고 결과 세트를 클라이언트에 반환하기 전에 문자열로 변환해야 합니다.
텍스트 프로토콜에는 심각한 성능 문제가 있습니다. 이 문제를 해결하기 위해 MySQL은 버전 4.1부터 prepare
라는 문을 추가하여 몇 가지 새로운 기능을 구현했습니다. prepare
语句的来实现一些新功能。
prepare
语句利用客户端/服务器二进制协议。 它将包含占位符(?
)的查询传递给MySQL服务器,如下例所示:
SELECT * FROM products WHERE productCode = ?;
当MySQL使用不同的productcode
值执行此查询时,不必完全解析查询。 因此,这有助于MySQL更快地执行查询,特别是当MySQL多次执行查询时。 因为prepare
语句使用占位符(?
),这有助于避免SQL注入的问题,从而使您的应用程序更安全一些。
为了使用MySQL准备语句,您需要使用其他三个MySQL语句如下:
PREPARE
语句定义的语句。PREPARE
语句。下图说明了如何使用PREPARE
语句:
我们来看一下使用MySQL PREPARE语句的例子。
PREPARE stmt1 FROM 'SELECT productCode, productName FROM products WHERE productCode = ?'; SET @pc = 'S10_1678'; EXECUTE stmt1 USING @pc; DEALLOCATE PREPARE stmt1;
首先,使用PREPARE
语句准备执行语句。我们使用SELECT
语句根据指定的产品代码从products
表查询产品数据。然后再使用问号(?
)作为产品代码的占位符。
接下来,声明了一个产品代码变量@pc
,并将其值设置为S10_1678
。
然后,使用EXECUTE
语句来执行产品代码变量@pc
的准备语句。
最后,我们使用DEALLOCATE PREPARE
来发布PREPARE
prepare
문은 클라이언트/서버 바이너리 프로토콜을 활용합니다. 다음 예와 같이 자리 표시자(?
)가 포함된 쿼리를 MySQL 서버에 전달합니다.
PREPARE
문으로 정의된 문을 실행합니다. PREPARE
문을 실행합니다. PREPARE
문을 사용하는 방법을 보여줍니다. 🎜🎜🎜PREPARE
문을 사용하여 실행할 문을 준비합니다. SELECT
문을 사용하여 지정된 제품 코드를 기반으로 products
테이블에서 제품 데이터를 쿼리합니다. 그런 다음 물음표(?
)를 제품 코드의 자리 표시자로 사용합니다. 🎜🎜다음으로, 제품 코드 변수 @pc
가 선언되고 해당 값이 S10_1678
로 설정됩니다. 🎜🎜그런 다음 EXECUTE
문을 사용하여 제품 코드 변수 @pc
의 준비된 문을 실행합니다. 🎜🎜마지막으로 DEALLOCATE PREPARE
를 사용하여 PREPARE
문을 실행합니다. 🎜🎜【관련 추천: 🎜mysql 비디오 튜토리얼🎜】🎜위 내용은 mysql prepare의 용도는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!