私はテーブル更新をデバッグしようとしており、次のアイデアのために苦労しています。私はXMLから値を抽出し、それらを使って列を更新しようとします(IDに一致する行)。PHPはMySQLを更新できませんが、成功したと報告します - phpmyadminで動作します
if ($r2 != false)
データは更新されず、失敗しないことが示唆されています。 phpmyadminで同じクエリを実行しても問題はありません。各アップデートの前に(私はこの問題のために)db &を検索して、その行を見つけました。
$home_lay = 99.99;
$draw_lay = 99.99;
$away_lay = 99.99;
if(count($home) > 0) {
$home_lay = $home[0]["decimal"];
}
if(count($draw) > 0) {
$draw_lay = $draw[0]["decimal"];
}
if(count($away) > 0) {
$away_lay = $away[0]["decimal"];
}
$q3 = "SELECT * FROM tab4 where match_id = " . $matchid;
$r3 = mysqli_query($dbc, $q);
if (mysqli_num_rows($r3) > 0) {
echo 'THIS ROW EXISTS <br />';
} else {
echo 'NO ROW!!!! <br />';
}
$q2 = 'update tab4 set smark_home = '.$home_lay. ' , smark_draw ='. $draw_lay .' , smark_away ='. $away_lay .'
where match_id='. $matchid;
$r2 = mysqli_query($dbc, $q);
if ($r2 != false) {
echo "Odds updated <br />";
私はそれをエコーしてきたように出力して(コードからカット)行かない:列は小数点ですが、運:(以下の大きなコード例のように、私はまた、明示的に(フロート)にXMLの結果をキャストしてみました次
マッチID:755094
家:3.90
引き分け:離れ3.50
:2.38
この行はsmark_hを設定TAB4
アップデートをEXISTS OME = 3.90、smark_draw = 3.50、smark_away = 2.38どこmatch_id = 755094
編集:「dddi」とPHP UPDATE prepared statementまだありませんエラー:私はちょうどこの正解例でプリペアドステートメントをやってみました、今削除したコメントに続きまたはアップデート
**警告**:mysqliを使用する場合は、[パラメータ化されたクエリ](http://php.net/manual/en /mysqli.quickstart.prepared-statements.php)と['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)を使ってクエリにユーザデータを追加します。 **重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成したため、文字列の補間または連結を使用してこれを実行しないでください。 ** '$ _POST'や' $ _GET'データを直接クエリに入れないでください。誰かがあなたのミスを悪用しようとすると、非常に危険です。 – tadman
'mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);'をyuorスクリプトの先頭に追加します。これにより、 'mysqli_'エラーは、あなたが見逃したり無視したりすることができないように、例外を生成するための に強制されます。 – RiggsFolly
UPDATEテキスト値の列はありますか? – RiggsFolly