アプリ版:「スタンプのみでお礼する」機能のリリースについて

http://okwave.jp/qa/q8227809.html
の続編です。
バインドのところでエラーが出ているようなのですが、原因と修正方法がわかりません。

/* プリペアドステートメントを作成します whereの箇所はプレースホルダ(xxx=?)をつけること! */
$sql = "SELECT * FROM `test_table` WHERE c_name=?";
$stmt = $mysqli->prepare($sql);
if($stmt = $mysqli->prepare($sql)) {
/* マーカにパラメータをバインドします */
$stmt->bind_param('i', $num); // バインドする変数に設定して送る

/* クエリを実行します */
$stmt->execute();

/* 結果変数をバインドします *//*69行目付近*/
$stmt->bind_result($num);

/* 値を取得します */
$stmt->fetch();

printf("<BR>%s\n", $num);

/* ステートメントを閉じます */
$stmt->close();
}

// 切断
$mysqli->close();

Warning: mysqli_stmt::bind_result(): Number of bind variables doesn't match number of fields in prepared statement in C:\xampp\htdocs\job_site4\search_criteria.php on line 69

というエラーが出ます。
解決方法を教えていただきたいです。
よろしくお願いします。

A 回答 (1件)

bind_result()のバインドさせようとしている変数の数が、抽出してきている項目数と一致しないのでは?


http://php.net/manual/ja/mysqli-stmt.bind-result …

この回答への補足

回答ありがとうございます。
select *
を使用しているので、すべての項目をbind_resultで出さないといけないのですね。
やってみます。

補足日時:2013/08/21 11:10
    • good
    • 0
この回答へのお礼

無事エラーが消えました。
ありがとうございました!

お礼日時:2013/08/21 11:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!