nem tér vissza TRUE-val
Sziasztok
van egy php kódom ami meghív egy procedurát ami egy INSERT műveletet végez el.Azon a táblán ahol ezt végzi nincs autoincrement oszlop.
ez a művelet nem tér vissza TRUE-val
köszönöm a segítséget
■ van egy php kódom ami meghív egy procedurát ami egy INSERT műveletet végez el.Azon a táblán ahol ezt végzi nincs autoincrement oszlop.
$sql = "CALL sp_szerzodes_rogzit('$_SESSION[projektkod]','0','0','$_SESSION[partnerID]','$_SESSION[Username]','$_SESSION[userID]')";
$result = mysqli_query($link,$sql);
if($result !== TRUE)
{
$call++;
}else{
commit....}
$result = mysqli_query($link,$sql);
if($result !== TRUE)
{
$call++;
}else{
commit....}
ez a művelet nem tér vissza TRUE-val
köszönöm a segítséget
a teljes kód
$sql = "CALL sp_szerzodes_rogzit('$_SESSION[projektkod]','0','0','$_SESSION[partnerID]','$_SESSION[Username]','$_SESSION[userID]')";
$result = mysqli_query($link,$sql);
if($result !== TRUE)
{
$call++;
}else{
while($row = mysqli_fetch_array($result,MYSQLI_ASSOC))
{
$kod_elso = $row['kod_elso'];
$projektID = sprintf("%03d",$row['projektID']);
$partnerID = sprintf("%03d",$row['partnerID']);
$szerzodesID = sprintf("%07d",$row['szerzodesID']);
$ID = $row['szerzodesID'];//az updatehez kell nullák nélkül
}
$sorszam = $kod_elso.$projektID.$partnerID.$szerzodesID;
}
$sql = "UPDATE szerzodes SET sorszam='$sorszam',statusz='üres',modosito='$_SESSION[Username]',modositas=NOW() WHERE szerzodesID='$ID' AND partnerID = '$_SESSION[partnerID]'";
$result1 = mysqli_query($link,$sql);
if($result1 !== TRUE)
$call++;
//echo $call;
if($call >0)
{
mysqli_rollback($link);
echo "<script>alert('a muvelet nem került végrehajtásra! ROLLBACK');</script>";
}
else{
mysqli_commit($link);
mysqli_close($link);
}
}
próba
Figy szerintem elsősorban nézd meg az $sql-t, h milyen értéket ad vissza...
Ha az jó akkor passz... mert működnie kéne....
$result !== TRUE <-- ezt biztos h így szeretted volna? nem pedig != ?
müködött
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
DECLARE kod_elso INT DEFAULT 8;
DECLARE pmax INT;
SELECT MAX(szerzodesID) FROM szerzodes WHERE partnerID = ppartnerID INTO pmax;
IF ISNULL(pmax) THEN
SET pmax = 1;
ELSE
SET pmax = pmax+1;
END IF;
INSERT INTO szerzodes
(szerzodesID,kod_elso,projektID,szerzodoID,biztositottID,partnerID,letrehozo,ugynokID)
VALUE (pmax,kod_elso,projektID,pszerzodoID,pbiztositottID,ppartnerID,pletrehozo,pugynokID);
SELECT szerzodesID,kod_elso,projektID,partnerID
FROM szerzodes
WHERE partnerID = ppartnerID
GROUP BY szerzodesID DESC LIMIT 1;
END;
lehet hogy a SELECT kavar be a az eljárásban.
a másik gondom ha mindent kiveszek és meghagyom a commit-ot nincs commit, ill ha minden bent van és nincs TRUE vagy false ellenőrzés a második SQL le sem fut