私は、単一のレコードを "現在"に設定するユーザーフォームを持っています。一度に1つのレコードだけを現在のレコードに設定することはできません。したがって、ユーザーに単一のドロップダウンリストを提示し、現在設定したい項目を選択し、フォームの下部にある「UPDATE」を押します。クエリがすでに実行された後、mysqli/phpを使用してすべてのレコードを更新するにはどうすればよいですか?
PHP/Mysqliは、すべてのレコード列 "current"を値0に設定し、フォームから値を "1"に更新する必要があります。
最初は、単純に行数をカウントし、ループカウンタが行のIDの場合は列を0または1に更新する一連のクエリを実行しました。まあ...私は他の部分でテストを始めてインデックス番号が総行数よりも高くなったので、それは速やかに壊れました。はい、それを最初にやるのは愚かなやり方です!これが失敗したと私に致命的なエラーが発生します
// $link is the database link defined elsewhere. This does work as I use it all over the place
$setCurrent = X; // This is the number passed from my form
$init_query = "SELECT id, current FROM myTable";
if ($stmt = $link->$prepare($init_query) {
$stmt->execute() or die ($stmt->error);
$stmt ->bind_result($id, $current)
while ($stmt->fetch()){
if ($id == $setCurrent){
$update_sql = "UPDATE myTable SET current ='1' WHERE id='".$setCurrent."'";
$stmt2 = $link->prepare($update_sql);
$stmt2->execute;
}
else {
$update_sql = "UPDATE myTable SET current ='0' WHERE id='".$id."'";
$stmt2 = $link->prepare($update_sql);
$stmt2->execute;
}
$stmt->close();
:ここ
は、私はPHP/MySQLのコードを実行しようとしました何不明なエラーは:ブール値で実行メンバ関数の呼び出し.....私はこの上に私の頭脳を掛けていると、何が起こっているのか理解できません。私がPHP/MySqlで作業して以来、数年経っており、これはOO Mysqliへの私の最初の夢です。穏やかにしてください:)
あなたのスクリプトが失敗した行について言えば便利かもしれません。どのクエリからエラーが出ますか? –
これはおそらくprepare()の余分な$ですか? –
私は別のシステムからコードを転記しました。構文は開発システム上で動作します。余分な$とcurleysはちょうど脂肪の運指です。 – user3723090