2016-08-24 2 views
0

私はテーブル更新をデバッグしようとしており、次のアイデアのために苦労しています。私は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まだありませんエラー:私はちょうどこの正解例でプリペアドステートメントをやってみました、今削除したコメントに続きまたはアップデート

+0

**警告**: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

+0

'mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);'をyuorスクリプトの先頭に追加します。これにより、 'mysqli_'エラーは、あなたが見逃したり無視したりすることができないように、例外を生成するための に強制されます。 – RiggsFolly

+0

UPDATEテキスト値の列はありますか? – RiggsFolly

答えて

0

FML。

$q2 = "update"; 
$r2 = mysqli_query($dbc, $q); // not $q2! 

ダン・タード。提案していただきありがとうございます。準備が整った文を使用しています。

関連する問題