webForumDet fria alternativet
Logga in / Bli medlem

Stored Procedure

PHP

1 svar · 278 visningar · startad av LR^evil.sid

Medlem sedan maj 2002560 inlägg
Trådstart#1

Jag förstår inte vad som är fel? Jag får inga som helst felmeddelanden. Vad är fel!? Koden nedan ger förjande output:

check: on

CALL BOXchangeID('fakeit', 1)
UPDATE kunder SET bindning = null WHERE avtalsnr = 'fakeit'
SELECT t.klar, k.AvtalsNr, t.callat FROM tm t INNER JOIN kunder k ON t.id = k.id WHERE k.id = 1

klar: 0
avtalsnr: Wxxxxxxxx
callat: 0000-00-00 00:00:00

switch($_POST['check']){
		case 'on':
			if($_POST['nytt']!='' && $_POST['id']!=''){
				$SQLQuery="CALL BOXchangeID('".$_POST['nytt']."', '".$_POST['id']."')";
				$link->query($SQLQuery);
				echo "$SQLQuery<br>";
				$SQLQuery="UPDATE kunder SET bindning = null WHERE avtalsnr = '".$_POST['nytt']."'";
				$link->query($SQLQuery);
				echo "$SQLQuery<br>";

				$SQLQuery="SELECT t.klar, k.AvtalsNr, t.callat FROM tm t INNER JOIN kunder k ON t.id = k.id WHERE k.id = ".$_POST['id'];
				$result=$link->query($SQLQuery);
				$rows=$result->fetch_row();
				echo "$SQLQuery<br><br>$rows[0]<br>$rows[1]<br>$rows[2]<br>";
			}
			break;
}

Och av någon anledning får jag inte uppdatera mer än ett fält per fråga med min procedur.
Och även fast jag säger det själv så lyckades jag strula till det ändå. Skyller på att jag inte ätit lunch idag.

Procedur:

BEGIN
    DECLARE kundid CHAR(11);
    SELECT avtalsnr INTO kundid FROM kunder WHERE id = whereis;
    UPDATE forsaljning SET avtalsnr = isthis WHERE avtalsnr = kundid;
    UPDATE forsaljning_boxar SET avtalsnr = isthis WHERE avtalsnr = kundid;
    UPDATE information SET avtalsnr = isthis WHERE avtalsnr = kundid;
    UPDATE kunder SET avtalsnr = isthis WHERE avtalsnr = kundid;
    UPDATE tillval SET avtalsnr = isthis WHERE avtalsnr = kundid;
    UPDATE tm SET avtalsnr = isthis WHERE avtalsnr = kundid;
    UPDATE tm_utg SET avtalsnr = isthis WHERE avtalsnr = kundid;
    UPDATE utskriftslog SET avtalsnr = isthis WHERE avtalsnr = kundid;
    UPDATE tm SET klar = 1[blue], callat = CONCAT(batch, ' 08:00:00')[/blue] WHERE avtalsnr = isthis;
    UPDATE tm SET callat = CONCAT(batch, ' 08:00:00') WHERE avtalsnr = isthis;
END

Parametrar:

IN isthis CHAR(11), IN whereis INT
Medlem sedan maj 2002560 inlägg
#2

LR^evil.sid skrev:

Och av någon anledning får jag inte uppdatera mer än ett fält per fråga med min procedur.

Och även fast jag säger det själv så lyckades jag strula till det ändå. Skyller på att jag inte ätit lunch idag.

BEGIN
DECLARE kundid CHAR(11);
SELECT avtalsnr INTO kundid FROM kunder WHERE id = whereis;
UPDATE forsaljning SET avtalsnr = isthis WHERE avtalsnr = kundid;
UPDATE forsaljning_boxar SET avtalsnr = isthis WHERE avtalsnr = kundid;
UPDATE information SET avtalsnr = isthis WHERE avtalsnr = kundid;
UPDATE kunder SET avtalsnr = isthis WHERE avtalsnr = kundid;
UPDATE tillval SET avtalsnr = isthis WHERE avtalsnr = kundid;
UPDATE tm SET avtalsnr = isthis WHERE avtalsnr = kundid;
UPDATE tm_utg SET avtalsnr = isthis WHERE avtalsnr = kundid;
UPDATE utskriftslog SET avtalsnr = isthis WHERE avtalsnr = kundid;
UPDATE tm SET klar = 1**, callat = CONCAT(batch, ' 08:00:00')** WHERE avtalsnr = isthis;
UPDATE tm SET callat = CONCAT(batch, ' 08:00:00') WHERE avtalsnr = isthis;
END

251 ms totalt · 4 externa anrop · v20260731065814-full.7d626504
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)