私は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>";
おかげ
をあなたがmysqli' 'の手続きスタイルを使用している、したがって、あなたのようにその結果を使用することはできませんobject – gmc
mysqliの手続き型スタイルは、パラメータのないストアドプロシージャでは使用できません。 したがって、mysqliのOOPスタイルはこれで動作しますか? – user2371684
あなたはそうすることができますが、あなたはまたprocedスタイルを使用する必要があります: '$ row = mysqli_fetch_assoc($ result_sp_in)' – gmc