adăugând Interogare MySQL la PHPMYAdmin

Am creat un proiect in studio vizual cu MYSQL folosind MYSQL Workbench. Funcționează bine. Apoi, mă duc la furnizorul meu de hosting și încerc să adaug protocolul stocat

Eroare Interogare SQL:

CREATE PROCEDURE spLogin_VerifyUser (IN VARCHAR Utilizator (50), IN Pass VARCHAR (50), OUT ChurchID INT) ÎNCEPE DECLARE ChurchIDTemp INT DEFAULT 0;

MySQL a spus:

1064 - Aveți o eroare în sintaxa SQL; verificați manualul care corespunde versiunii serverului dvs. MySQL pentru a utiliza sintaxa potrivită în dreptul lui '' la linia 3

când încerc să adaug următoarele proc stocate:

create procedure spLogin_VerifyUser(IN User VARCHAR(50),IN Pass VARCHAR(50),OUT ChurchID INT)
begin
DECLARE ChurchIDTemp INT DEFAULT 0;
select idchurch into ChurchIDTemp FROM loginusers
WHERE Username=User and Password=Pass;
select IFNULL(ChurchIDTemp,0) into ChurchID;
end
;;
0
Folosesc phpmyadmin btw pentru a încerca să adaug
adăugat autor Chris Norris, sursa

3 răspunsuri

Este versiunea completă a MySQL sau versiunea comunitară?

Versiunea comunitară este gratuită, dar nu permite proceduri stocate.

(Am avut aceeași problemă cu câțiva ani în urmă)

0
adăugat
Foarte posibil! Verificați răspunsul de delimitare de mai sus, pare un bun pariu pentru mine.
adăugat autor CompanyDroneFromSector7G, sursa
Problema pe care au spus-o a fost că, în conformitate cu "regulile" lor, numele meu db trebuie să fie parte a numelui stocat proc. Deși am încercat acest lucru și încă mai primesc aceeași eroare.
adăugat autor Chris Norris, sursa
Folosesc versiunea comunității și funcționează cu procedurile stocate. Poate că problema dvs. a fost o versiune mult mai veche a MySQL
adăugat autor Drahcir, sursa

încerca

delimiter |
create procedure spLogin_VerifyUser(IN User VARCHAR(50),IN Pass VARCHAR(50),OUT ChurchID INT)
begin
    DECLARE ChurchIDTemp INT DEFAULT 0;
    select idchurch into ChurchIDTemp FROM loginusers
    WHERE Username=User and Password=Pass;

    select IFNULL(ChurchIDTemp,0) into ChurchID;
end;
|
0
adăugat
juergen D: Am încercat răspunsul dvs. și am obținut această eroare: # 1044 - Accesul a fost refuzat pentru utilizator 'getre_admin' @ '%' în baza de date 'getreal2_churchweb'
adăugat autor Chris Norris, sursa
Nu folosesc rădăcina .. pe un server MySQL partajat
adăugat autor Chris Norris, sursa
sa dovedit a fi permisiunile lui isp .. nu au permis procedurile stocate create de utilizatori .. au trebuit să ruleze scripturile de creație
adăugat autor Chris Norris, sursa
@ChrisNorris: Executați acest script cu drepturi suficiente? Folosești utilizatorul root?
adăugat autor juergen d, sursa

Aceasta este o eroare frecvent întâlnită.

După cum probabil știți, MySQL permite proceduri, dar phpMyAdmin vă permite să le proiectați. Acum, dacă ați scris una în altă parte și doriți ca phpMyAdmin să fie simplu de executat, asigurați-vă că:

  1. Nu aveți versiunea comunității gratuite a mySQL deoarece nu permite proceduri stocate. Cred că aceasta este o problemă de compatibilitate între diferite versiuni și phpMyAdmin. Verificați mai jos o soluție posibilă.

Refer to this: http://tycoontalk.freelancer.com/the-database-forum/117270-phpmyadmin-and-procedures.html

În lista de baze de date PhpMyAdmin ar trebui să fie informația_schema. În el este un nume de tabel ROUTINES. O interogați prin emiterea unui

select ROUTINE_NAME from ROUTINES;

Aceasta va afișa o listă cu numele procedurilor stocate. Pentru a vedea o procedură, executați interogarea

show create procdure [procedure name from above select]
0
adăugat
MySQL - comunitatea Română
MySQL - comunitatea Română
19 participanți

Comunitatea română a programatorilor MySQL.