1

再投稿の場合は、申し訳ありませんが、答えが見つかりません。私は MySql と PHP が初めてで、2 つの別々のテーブルからコンテンツを返すストアド プロシージャを作成しようとしています。呼び出しは本質的にこれです:

CREATE DEFINER=`root`@`localhost` PROCEDURE `grabPage`(t_user VARCHAR(32), 
                        t_page VARCHAR(128))
BEGIN
    SELECT formC FROM menuTable WHERE user=t_user;
    SELECT formC FROM siteTable WHERE user=t_user AND page=t_page ORDER BY contentID;
END

この見方は間違っているのでしょうか?ベストプラクティスは何ですか? これを 1 つのストアド プロシージャで実行したい理由は、PHP でデータベースを 1 回呼び出すだけで済むようにするためです。そのコードは次のようになります。php で処理する必要がある場合、どのように処理すればよいでしょうか?

$con = mysqli_connect("localhost", "dbusername", "dbpassword", "database");
$query = "CALL grabPage('username', 'pagename')";
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con, $query);
if (!$result) {
    printf("Error: %s\n", mysqli_error($con));
    exit();
}
$row = array();
while ($row[] = mysqli_fetch_array($result));
mysqli_close($con);
foreach ($row as $htmlOut)
    echo $htmlOut['formattedContent'];

ご協力いただきありがとうございます。

4

1 に答える 1