Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF

 

Kdo je autorem výstavy obrazových fotografií „Očima Hanse Christiana Andersena“?

V dnešní soutěži hrajeme o:



mysqli a procedura obsahujici execute

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

mysqli a procedura obsahujici execute

Autor: q ♂

14:31:26 19.03.2014

mam ulozenou proceduru v niz se sklada dotaz, pokud tuto proceduru volam z ruznych mist je vše OK, ale pokud ji zavolam z PHP pomoci mysqli vrací nesmysly.
Ocekaval bych ze se mi vrati jeden zaznam s jednim sloupcem kde bude cislo 2000, ale dostanu sice jeden zaznam s jednim sloupcem, ale hodnota je zcela nesmyslna.

zjednoduseny kod procedury(bez skladani dotazu, to problem nedela, problem dela EXECUTE):

DELIMITER $$
CREATE DEFINER=`root`@`%` PROCEDURE `test`()
BEGIN
SET @out1=0;
SET @q = "select 2000 into @out1";
PREPARE SQLq FROM @q;
EXECUTE SQLq;
DEALLOCATE PREPARE SQLq;
SELECT @out1 AS output;
END$$
DELIMITER ;

kod php:
<?php
$link = new mysqli("server","login","pass","databaze");
$SQL=$link->stmt_init();
$SQL->prepare("call `test`()");
$SQL->execute();

do {
if ($res = $SQL->get_result()) {
var_dump(mysqli_fetch_all($res));
mysqli_free_result($res);
} else {
if ($SQL->errno) {
echo "Store failed: (" . $SQL->errno . ") " . $stmt->error;
}
}
} while ($SQL->more_results() && $SQL->next_result());
?>

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: