1

次のコードをどのように書き換え/修正するのか疑問に思っていました。

基本的に、私は という名前のデータベースDBとその中に という名前のテーブルを持っていますpoems。特定の ID を持つテーブル内のすべてのデータpoems(つまり、誰が詩を書いたか、詩に含まれるタグ、その内容、作成日など) を取得し、後で印刷できるように配列に安全に保存したいと考えています。ウェブページに。

私が使用しているホスティング サービスは、 に必要な mysqlnd ドライバーをサポートしていないためmysqli_getresult()、現在、エラー " Call to undefined method mysqli_stmt::get_result()"が発生します。

$mysqliを使用して、データベースへの事前に作成された接続です。new mysqli()

function getpoemdata($mysqli) {
                echo "Function started.";
                if(isset($_GET['poem_id'])) { // Check if poem_id is set in the URL
                    $poemid=$_GET['poem_id']; // Get poem_id set in URL
                    if (!is_int($poemid)) { $poemid = 7; } // Check if poem_id is set an integer
                    if ($poemid <= 0) { $poemid = 7; } //Check if poem_id is positive- If negative, it is changed to positive
                    $stmt = $mysqli->prepare("SELECT * FROM `poems` WHERE `poem_id` = ?");
                    $stmt->bind_param('i', $poemid);
                    $stmt->execute();
                    $result = $stmt->get_result();
                    $returned_data = $returned_data->fetch_array();
                    while($stmt->fetch()){
                        echo $returned_data . '<br />';
                    }
                    $stmt->free_result();
                }
                else { //If user simply types "poemview.php" and not "poemview.php?poem_id="
                echo "error";
            }
    }

事前にたくさんの助けをありがとう.

4

1 に答える 1

3

get_result()は PHP 5.3.0 で導入され、前述のようにmysqlndが必要です。ただし、必要ないと思います。と組み合わせてfetch()を使用bind_resultして、データを取得できます。他の方法もあるかもしれません。

ドキュメントの例:

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = $mysqli->prepare($query)) {

    /* execute statement */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($name, $code);

    /* fetch values */
    while ($stmt->fetch()) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

ドキュメントのさらに下にある例は、配列にバインドする方法を示しています。

于 2013-06-30T01:54:16.203 に答える