亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

替換為導致“WHERE”處出現 MySQL 語法錯誤

替換為導致“WHERE”處出現 MySQL 語法錯誤

PHP
喵喵時光機 2023-07-08 17:43:12
我正在嘗試使用 Replace Into 在 php 中創建一個用戶計數腳本,但目前它似乎拋出一個我無法破譯的 MySQL 錯誤。$db->query("REPLACE INTO onlinenow (`time`,`ip`) VALUES ('$timestamp','$ip') WHERE ip = '$ip' ");對我來說看起來是正確的,但是會導致錯誤MySQL 錯誤:您的 SQL 語法有錯誤;檢查與您的 MySQL 服務器版本相對應的手冊,了解在第 1 行 'WHERE ip = 'REDACTED'' 附近使用的正確語法有人知道我哪里出錯了嗎?
查看完整描述

1 回答

?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

簡短回答:

REPLACE INTO沒有WHERE條款。

長答案:

它沒有一個,因為它不需要一個 - 同一份文檔說:

如果表中的舊行與 PRIMARY KEY 或 UNIQUE 索引的新行具有相同的值,則在插入新行之前刪除舊行

這會自動發生。在你的情況下,我假設它將是 IP 列,應該對其進行PRIMARY KEYUNIQUE約束。

因此,您可以簡單地從查詢中刪除 WHERE 子句,其余的就可以了。


PS 我強烈建議您使用參數化查詢和準備好的語句安全地在 PHP 中構建查詢,而不是像現在一樣使用簡單的字符串連接。這將保護您免受 SQL 注入攻擊,并大大降低其他意外語法錯誤的風險(例如,由于輸入值中的引號和類似問題)。


查看完整回答
反對 回復 2023-07-08
  • 1 回答
  • 0 關注
  • 119 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號