0
我試圖調試一個表更新,並努力爲下一個想法。我從XML中提取值並嘗試用它們更新列(在ID上匹配的行)。PHP無法更新MySQL,但報告成功 - 在phpmyadmin中工作
if ($r2 != false)
達到提示它不會失敗,但沒有數據更新。如果我在phpmyadmin中運行相同的查詢,它將更新沒有問題。在每次更新之前(因爲這個問題)我查詢db &成功找到該行。我也試過明確鑄造XML結果(浮動)的列是小數,但下面沒有運氣:(較大的代碼示例:
$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 />";
我在它呼應了去(從切代碼)與像輸出以下內容:
匹配ID:755094
家:3.90
抽獎:3.50
遠:2.38
此行存在
更新TAB4集smark_h青梅= 3.90,smark_draw = 3.50,smark_away = 2.38,其中match_id = 755094
編輯:繼現在刪除評論我只是試着做一份準備好的聲明這個正確答案例如:PHP UPDATE prepared statement與「dddi」,但仍然沒有錯誤或更新
**警告**:使用'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