次のコードを機能させようとしていますが、execute()
行に到達できません。
_$mysqli = $this->ConnectLowPrivileges();
echo 'Connected<br>';
$stmt = $mysqli->prepare("SELECT `name`, `lastname` FROM `tblStudents` WHERE `idStudent`=?");
echo 'Prepared and binding parameters<br>';
$stmt->bind_param('i', 2 );
echo 'Ready to execute<br>'
if ($stmt->execute()){
echo 'Executing..';
}
} else {
echo 'Error executing!';
}
mysqli_close($mysqli);
_
私が得る出力は:
_Connected
Prepared and binding parameters
_
したがって、問題は5行目にあるはずですべきですが、 manual of bind_param()
をチェックすることはできませんそこで構文エラーを見つけます。
パラメータをバインドするとき、参照として使用される変数を渡す必要があります。
$var = 1;
$stmt->bind_param('i', $var);
マニュアルを参照してください: http://php.net/manual/en/mysqli-stmt.bind-param.php
ご了承ください $var
バインドするために実際に定義する必要はありません。以下は完全に有効です。
$stmt->bind_param('i', $var);
foreach ($array as $element)
{
$var = $element['foo'];
$stmt->execute();
}
ここでは単に説明です
バインドする変数を宣言します
$var="email";
$mysqli = $this->ConnectLowPrivileges();
echo 'Connected<br>';
$var="email";
$stmt = $mysqli->prepare("SELECT name, lastname FROM tablename WHERE idStudent=?" LIMIT=1);
echo 'Prepared and binding parameters<br>';
$stmt->bindparam(1,$var);