2016-10-17 4 views
0

このコードの結果をどのようにエコーしますか?

編集:ここに新しいコードがあります。公式PHPサイトの例に基づいています。

<?php 
require 'connection.php'; 
$getid = $_GET["id"]; 
$sql = "SELECT * FROM pasteinfo WHERE id = ?"; 
$stmt = $con->prepare($sql); 
$stmt->bind_param("i", $getid); 


if ($stmt = $mysqli->prepare($sql)) { 
    $stmt->execute(); 
    $stmt->bind_result($paste) 
     while($stmt->fetch()) { 
      printf ("%s \n", $paste); 
     } 

    $stmt->close(); 
    $mysqli->close(); 

} 
?> 
+1

フェッチする:http://php.net/manual/en/mysqli-stmt.fetch.php –

+0

@MarcBので、私の新しいコードはwhile($ stmt-> fetch()){printf(%s) ; }右下の$ stmt-> execute();ページをまっすぐに利用できないようにしますか? –

+0

またはリンクされたドキュメントの例を実際に読むことができるので、実際には正確に使用してください。プラス、 'printf(%s)'はフラットアウト構文エラーです。 –

答えて

0

あなたがbind_param()と呼ばれた後、再度ステートメントを準備するので、新しい文はパラメータがバインドされていません。 bind_result()への呼び出し後に;が見つからない場合もあります。

<?php 
require 'connection.php'; 
$getid = $_GET["id"]; 
$sql = "SELECT * FROM pasteinfo WHERE id = ?"; 

if ($stmt = $mysqli->prepare($sql)) { 
    $stmt->bind_param("i", $getid); 
    $stmt->execute(); 
    $stmt->bind_result($paste); 
    while($stmt->fetch()) { 
     printf ("%s \n", $paste); 
    } 

    $stmt->close(); 
    $mysqli->close(); 

} 
?> 

また、あなたが選択している列の数としてbind_result中の変数の数が同じでなければなりません。より少ない数を持つことは問題ないかもしれませんが、残りの列は無視されます。わかりません。 select *ではなく特定の列を選択するのが最善です。これは、表定義の列の順序が危険であるためです。

関連する問題