• User Newbie

    Richiamare Store Procedure che restituisce un recordset (Php e MySql)

    Salve a tutti,

    Ho create la seguente Stored Procedure su MySql:

    CREATE PROCEDURE sptest2()
    BEGIN
    SELECT * FROM UTENTI;
    END

    e la richiamo da php come segue:

    $link = mysql_connect(srv,login,password)
    or die("Could not connect:".mysql_error());
    mysql_select_db(db)
    or die("Could not connect:".mysql_error());

    $query = "call sptest2()";
    $result = mysql_query($query)
    or die("<br>KO: $query<br>".mysql_error());

    Ottengo:

    KO: call sptest2()
    PROCEDURE apparati.sptest2 can't return a result set in the given
    context

    Se invece la richiamo così funziona tutto:

    $mysqli=new mysqli(srv,login,password,db);
    $SQL = "call sptest2()";

    if (($result = $mysqli->query($SQL))===false) {
    printf("Invalid query: %s\nWhole query: %s\n", $mysqli->error, $SQL);
    exit();
    }

    while ($myrow=result->fetch_array(MYSQLI_ASSOC)){
    echo $myrow["email"]."<br>";
    }
    $result->close();
    $mysqli->close();

    PERCHE'?
    Che differenza c'è i comandi
    mysql_connect, mysql_select_db e mysql_query rispetto ai comandi
    mysqli, mysqli->query ecc. ecc.???

    Grazie a tutti.