-3

私は自分のサイトでプロトタイプ段階にあります。

プリペアド ステートメントはより安全で、mysql db と対話する新しい方法であるため、それらを使用して php.net の関連セクションを読むことにしましたが、php.net のすべての例にはwhere name = ?.

以下では、プレースホルダーは必要ないと思いますが、出力を印刷できませんでした。

私のデータベースからの出力はありません。

注意

: 未定義の変数: 行 16 の行
通知: 未定義の変数: 行 16 の行
通知: 未定義の変数: 行 16 の行
通知: 未定義の変数: row in ... 16 行目

どうすればいいですか? 助けてください。

ありがとう

、私のindex.phpでよろしく

//mysql bağlantısı
    global $db_baglanti;
    $db_baglanti = new mysqli(vt_host, vt_user, vt_password, vt_name);
    if ($db_baglanti->connect_errno) 
    {
        echo "MySQL bağlantısı kurulamadı: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    }

    if (!$db_baglanti->set_charset("utf8")) 
    {
        printf("utf8 karakter setinin yüklenmesinde problem oluştu: %s\n", $db_baglanti->error);
    } 
    else 
    {
        $db_baglanti->set_charset("utf8");
    }

含まれているページで

$sorgum = "SELECT kolon_baslik, kolon_yazi FROM tb_yazilar";


if ($beyan = $db_baglanti->prepare($sorgum)) 
{

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



    /* fetch values */
    while ($beyan->fetch()) {
        echo $row['kolon_baslik'].'<br /><br />'.$row['kolon_yazi'].'<br /><br />';
    }

    /* close statement */
    $beyan->close();
}
4

2 に答える 2

0

全能のマニュアルから: http://www.php.net/manual/en/mysqli-stmt.fetch.php

mysqli_stmt_fetch() を呼び出す前に、すべてのカラムがアプリケーションによってバインドされている必要があることに注意してください。

そして最初の例から:

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

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

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

欠けているのは、存在しない配列$beyan->bind_result($kolon_baslik, $kolon_yazi);の代わりにこれらの変数を使用することです。$row

于 2013-03-10T13:46:54.610 に答える
0

ありがとう、私はこのリンクで答えを見つけました: http://php.net/manual/en/mysqli-stmt.fetch.php

作業コードは次のとおりです。

if ($beyan = $db_baglanti->prepare($sorgum)) 
{

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

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

    /* fetch values */
    while ($beyan->fetch()) {
        //printf ("%s (%s)\n", $name, $code)
        echo $name.'<br /><br />'.$code.'<br /><br />';
    }

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

mysql の結果を変数にバインドする必要があることを学び、そのバインドされた変数の値を出力しました。関連コードは次のとおりです。$beyan->bind_result($name, $code);

于 2013-03-10T13:58:25.427 に答える