Stored Procedure

PHP

1 svar · 281 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

260 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)