2017-04-01 1 views
0

私は2つのストアプロシージャを持っていますが、唯一の違いは、2番目のストアドプロシージャがin paramを持っていることです。パラメータphpエラーでのストアプロシージャ

paramがうまく動作しないspは、空のテーブルを生成します。私は自分のlocalhostサーバー上でストアプロシージャをテストしたので、ストアプロシージャには何も問題はありません。

mysqliで手続き型コードとoop型コードを混在させたコードも修正しました。 "gmc"のおかげで、私はそれを修正しました。

//sp 

//This store proc without in params is working 
echo "<h4>Författartabellen hämtad från databasen med en store procedure</h4>"; 
    $result_sp = mysqli_query($conn, "CALL jokes"); 

    //loop the result set 
echo "<table><tr><th>Joke</th><th>AuthorName</th></tr>"; 
    // output data of each row 
    while($row = mysqli_fetch_assoc($result_sp)) { 
     echo "<tr><td>".$row["joketext"]."</td><td>".$row["name"]."</td></tr>"; 
    } 
    echo "</table>"; 

// This store proc with in param is not working, returns a empty table 
//run the store proc 
echo "<h4>Författartabellen hämtad från databasen med en store procedure</h4>"; 
    $result_sp_in = mysqli_query($conn, 'CALL jokes_author("Joan Smith")'); 

    //loop the result set 
echo "<table><tr><th>Joke</th><th>AuthorName</th></tr>"; 
    // output data of each row 
    while($row = mysqli_fetch_array($result_sp_in)) { 
     echo "<tr><td>".$row["joketext"]."</td><td>".$row["name"]."</td></tr>"; 
    } 
    echo "</table>"; 

おかげ

+0

をあなたがmysqli' 'の手続きスタイルを使用している、したがって、あなたのようにその結果を使用することはできませんobject – gmc

+0

mysqliの手続き型スタイルは、パラメータのないストアドプロシージャでは使用できません。 したがって、mysqliのOOPスタイルはこれで動作しますか? – user2371684

+0

あなたはそうすることができますが、あなたはまたprocedスタイルを使用する必要があります: '$ row = mysqli_fetch_assoc($ result_sp_in)' – gmc

答えて

0

更新: これは私のコードでこれを試してみてください。

$result_sp_in = mysqli_query($mysqli, 'CALL jokes_author("Joan Smith", @joketext, @name)'); 
$select = mysqli_query($mysqli, 'SELECT @joketext, @name'); 
while($row = mysqli_fetch_array($select)) { 
    echo "<tr><td>".$row["joketext"]."</td><td>".$row["name"]."</td></tr>"; 
} 
echo "</table>"; 
+0

これまでに私のコードを修正していますが、これはパラメータがないspです。 その結果、$ result_sp_inを使用している空のテーブルを表示しているparamを持つ – user2371684

+0

mysqli_fetch_assocの代わりにmysqli_fetch_arrayを試してみてください。 mysqli_fetch_array引数に$ result_sp_inを指定しないと、空のテーブルが表示されます。 – user2371684

+0

MySQLプロシージャが正しく動作していますか? – gmc

関連する問題