2017-10-26 5 views
0

まず、これは繰り返しの質問であり、私は同じ質問をしています。しかし、私は同じ問題にリンクしているすべてのソリューションを読んだことがありますが、提案されたソリューションに従うと、より多くの警告が表示されます。 これは私が準備文のフィールド数と一致するようにバインド変数の数を設定する方法

if($stmt = $mysqli->prepare("SELECT * FROM emergency WHERE id=?")) 
 
{ 
 
$stmt->bind_param("i", $id); 
 
$stmt->execute(); 
 

 
$stmt->bind_result($id, $patient_seen_u, $patient_seen_a); 
 
$stmt->fetch(); 
 

 
// show the form 
 
renderForm($patient_seen_u, $patient_seen_a, NULL, $id); 
 

 
$stmt->close();

警告を取得するために私のコードで持っているものです:mysqli_stmt :: bind_resultを():バインド変数の数は 試合数ません準備されたステートメントのフィールド数は です。122行目のC:\ xampp \ htdocs \ gsd \ emergency \ records.php

ので、私はこれらの警告を取得するために

if($stmt = $mysqli->prepare("SELECT date, patient_seen_u, patient_seen_a FROM emergency WHERE id ='?'")) 
 
{ 
 
$stmt->bind_param("i", $id); 
 
$stmt->execute(); 
 

 
$stmt->bind_result($id, $date, $patient_seen_u, $patient_seen_a); 
 
$stmt->fetch(); 
 

 
// show the form 
 
renderForm($date, $patient_seen_u, $patient_seen_a ,NULL, $id); 
 

 
$stmt->close(); 
 
}

にコードを変更します。

警告:mysqli_stmt :: bind_param():変数の数は Cでプリペアドステートメント内のパラメータの 数と一致しません:行に緊急の\ records.php \ \ xamppの\ htdocsに\ GSD 119

警告:mysqli_stmt :: bind_result():バインド変数の数はありません Cでプリペアドステートメント内のフィールドのない 試合数:\ xamppの\ htdocsに\ GSDライン上の緊急の\ records.php \ 122

またこれを行うようにしてください。

if($stmt = $mysqli->prepare("SELECT `date`, `patient_seen_u`,`patient_seen_a` FROM `emergency` WHERE `id` = '?'")) 
 
{ 
 
$stmt->bind_param("iii", $id); 
 
$stmt->execute(); 
 

 
$stmt->bind_result($id, $date, $patient_seen_u, $patient_seen_a); 
 
$stmt->fetch(); 
 

 
// show the form 
 
renderForm($date, $patient_seen_u, $patient_seen_a ,NULL, $id); 
 

 
$stmt->close(); 
 
}

が、コードはどちらか動作しません。ヘルプ、どうすればこの問題を解決できますか?

+0

だから$ idとは何ですか? – Strawberry

+0

URLからIDを取得するために使用します$ id = $ _GET ['id']; – WanHazyan

答えて

1

は、プレースホルダを囲む引用符を削除してもbind_result

if($stmt = $mysqli->prepare("SELECT id, date, patient_seen_u, patient_seen_a FROM emergency WHERE id =?")) { 

$stmt->bind_param("i", $id);// bind as integer 


$stmt->bind_result($id, $date, $patient_seen_u, $patient_seen_a); 
+0

ありがとうございます、今はうまくいきます。 – WanHazyan

+0

私の答えは受け入れたものとしてマークしてください – Akintunde007

1
if($stmt = $mysqli->prepare("SELECT id, date, patient_seen_u, patient_seen_a FROM emergency WHERE id =?")) 
{ 
$stmt->bind_param("i", $id); 
$stmt->execute(); 

$stmt->bind_result($id, $date, $patient_seen_u, $patient_seen_a); 
$stmt->fetch(); 

// show the form 
renderForm($date, $patient_seen_u, $patient_seen_a ,NULL, $id); 

$stmt->close(); 
} 

、今それがうまく働いているの配置順序と一致するidカラムを追加します。ありがとうございました。

関連する問題