Ich habe eine gespeicherte Prozedur in MysQL für meine WordPress-Datenbank erstellt. Der Zweck dieses Verfahrens besteht darin, einen neuen Benutzer in der WordPress-Datenbank mit Anmeldeinformationen zu registrieren (user_login
,user_pass
,user_nicename
,user_email
,und displayname
.) Die SQL-Syntax dieser Prozedur ist in Ordnung, aber wenn ich die Prozedur aufrufe, kann ich nichts als Antwort erhalten, etwas, das sagt, ob der neue Benutzer zur Datenbank hinzugefügt wurde. Ich weiß nicht, was das Problem ist, denn wenn ich nach dem Aufrufen der Prozedur in die Datenbank einchecke, sehe ich keine vorgenommenen Änderungen.
-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$
CREATE DEFINER=`root`@`127.0.0.1` PROCEDURE `registerWithCredentials`(IN in_userlogin VARCHAR(50), IN in_userpass VARCHAR(32),IN in_usernicename VARCHAR(50) ,IN in_useremail VARCHAR(50), IN in_displayname VARCHAR(50))
proc_main:BEGIN
BEGIN
DECLARE ID int(10);
DECLARE CheckExists INT;
SET CheckExists=0;
select count(*) into CheckExists from wp_users where user_login like in_userlogin or user_email like in_useremail;
if (CheckExists>0)
then
leave proc_main;
end if;
if (in_userpass is not null or in_userpass !='') and (in_useremail is not null or in_useremail !='')
then
insert into prod_huselbrand_db.wp_users (
user_login
,user_pass
.user_nicename
,user_email
,display_name
) VALUES (
in_userlogin -- username - IN varchar(50)
-- email - IN varchar(50)
,MD5(in_userpass) -- passwd - IN blob ,
,in_usernicename
,in_useremail
,in_displayname
);
else
leave proc_main;
end if;
set ID:=LAST_INSERT_ID();
end;
END proc_main