phpmyadmin을 사용하여 저장 프로 시저를 작성하는 방법과 PHP를 통해 사용하는 방법은 무엇입니까?
저장 프로 시저를 사용 phpMyAdmin
하고 나중에 PHP를 통해 사용할 수 있기를 원합니다 .
그러나 나는 방법을 모른다?
내가 아는 바에 따르면 phpMyAdmin
.
저장 프로 시저를 관리 할 수있는 다른 도구는 무엇입니까?
PHP를 통해 저장 프로 시저를 사용하는 것이 더 나은 옵션인지 확실하지 않습니다. 어떠한 제안?
저장 프로시 저는 쿼리를 사용하여 생성, 변경 및 삭제되므로 실제로 phpMyAdmin을 사용하여 관리 할 수 있습니다.
저장 프로 시저를 만들려면 다음을 사용할 수 있습니다 (필요에 따라 변경).
CREATE PROCEDURE sp_test()
BEGIN
SELECT 'Number of records: ', count(*) from test;
END//
그리고 SQL 탭의 "구분자"필드를 //로 설정했는지 확인합니다.
저장 프로 시저를 생성하면 테이블 아래의 루틴 필드 셋 (구조 탭)에 나타나며 쉽게 변경 / 삭제할 수 있습니다.
PHP에서 저장 프로 시저를 사용하려면 일반 SQL 에서처럼 CALL 쿼리를 실행해야합니다.
아무도 이것을 언급하지 않았으므로 여기에 쓸 것입니다. phpMyAdmin 4.x에서는 맨 위 행의 "Routines"탭 아래에 "Add Routine"링크가 있습니다. 이 링크는 구분 기호 나 템플릿에 대한 걱정없이 저장 프로 시저를 작성할 수있는 팝업 대화 상자를 엽니 다.
루틴 추가
간단한 테스트 저장 프로 시저의 경우 이미 제공된 기본 매개 변수를 삭제하거나 값으로 간단히 설정할 수 있습니다.
이 시도
delimiter ;;
drop procedure if exists test2;;
create procedure test2()
begin
select ‘Hello World’;
end
;;
Toad for MySQL을 사용해보십시오. 무료이며 훌륭합니다.
phpAdmin에서 작동하도록했지만 "Number of records"구문을 제거했을 때만 가능합니다.
내 버전의 phpAdmin에서 구분 기호를 변경하는 상자를 볼 수 있습니다.
또한 데이터베이스의 절차를보기 위해 phpAdmin 홈, information_schema 데이터베이스, 루틴 테이블로 이동했습니다.
새로운 버전의 phpMyAdmin (3.5.1)은 저장 프로 시저를 훨씬 더 잘 지원합니다. 포함 : 편집, 실행, 내보내기, PHP 코드 생성 및 일부 디버깅.
config.inc.php에서 mysqli 확장을 사용하고 있는지 확인하십시오.
$cfg['Servers'][$i]['extension'] = 'mysqli';
데이터베이스를 열면 상단에 Routines 라는 새 탭이 표시되고 Add Routine 을 선택 합니다.
내가 한 첫 번째 테스트에서 다음과 같은 오류 메시지가 생성되었습니다.
MySQL은 다음과 같이 말했습니다. # 1558-mysql.proc의 열 수가 잘못되었습니다. 20 개를 예상하고 16 개를 찾았습니다. MySQL 50141로 생성되었으며 현재 50163을 실행합니다. mysql_upgrade를 사용하여이 오류를 수정하십시오.
Ciuly의 블로그 는 명령 줄 액세스 권한이 있다고 가정 할 때 좋은 솔루션을 제공합니다. 그렇지 않으면 어떻게 고칠 지 모르겠습니다.
- 구분자 ;;
- 생성 절차 sp_number_example_records ()
- BEGIN
SELECT count (id) from customer; 종료 - ;;
위의 모든 답변은 특정 가정을하고 있습니다. 1and1에는 기본적인 문제가 있으며 특정 다른 호스팅 제공 업체는 매우 오래되고 정의 된 구분 기호에 문제가있는 phpMyAdmin 버전을 사용하고 있습니다. phpMyAdmin에서 변경할 방법이 없습니다. 다음은 방법입니다
- 호스팅 공급자에서 새 PHPMyAdmin을 만듭니다. 첨부 된 링크는 http://internetbandaid.com/2009/04/05/install-phpmyadmin-on-1and1/에 대한 아이디어를 제공합니다.
- dekstop에서 호스팅 공급자 mySQL에 액세스 할 수있는 복잡한 경로를 통과하십시오. 복잡하지만 진지한 개발자라면 가장 좋습니다. 여기에 http://franklinstrube.com/blog/remote-mysql-administration-for-1and1/ 링크가 있습니다.
도움이 되었기를 바랍니다
로컬 서버에서 다음 쿼리가 작동합니다.
DELIMITER |
CREATE PROCEDURE sample_sp_with_params (IN empId INT UNSIGNED, OUT oldName VARCHAR(20), INOUT newName VARCHAR(20))
BEGIN
SELECT `first name` into oldName FROM emp where id = empId;
UPDATE emp SET `first name`= newName where id = empId;
END
|
DELIMITER ;
그러나 프로덕션 서버에서는 작동하지 않을 수 있습니다. 사용중인 mysql 버전에 따라 다릅니다. powweb 서버에서 동일한 문제가 발생하여 구분 기호를 제거하고 키워드를 시작하면 정상적으로 작동합니다. 다음 쿼리를 살펴보십시오
CREATE PROCEDURE adminsections( IN adminId INT UNSIGNED ) SELECT tbl_adminusersection.ads_name, tbl_adminusersection.ads_controller FROM tbl_adminusersectionright LEFT JOIN tbl_adminusersection ON ( tbl_adminusersectionright.adsr_ads_id = tbl_adminusersection.ads_id ) LEFT JOIN tbl_adminusers ON ( tbl_adminusersectionright.adsr_adusr_id = tbl_adminusers.admusr_id ) WHERE tbl_adminusers.admusr_id = adminId;
도움이되기를 바랍니다.
감사
/*what is wrong with the following?*/
DELIMITER $$
CREATE PROCEDURE GetStatusDescr(
in pStatus char(1),
out pStatusDescr char(10))
BEGIN
IF (pStatus == 'Y THEN
SET pStatusDescr = 'Active';
ELSEIF (pStatus == 'N') THEN
SET pStatusDescr = 'In-Active';
ELSE
SET pStatusDescr = 'Unknown';
END IF;
END$$
'IT Share you' 카테고리의 다른 글
사이트 일치 검색어가 없습니다. (0) | 2020.12.02 |
---|---|
Google Cloud Storage에서 많은 파일을 어떻게 공개합니까? (0) | 2020.12.02 |
문자열에서 특정 문자 발생 횟수 계산 (0) | 2020.12.02 |
웹 API POST 본문 객체는 항상 null입니다. (0) | 2020.12.02 |
C ++-십진수를 이진으로 변환 (0) | 2020.12.02 |