簡體   English   中英

PHP / MySQL 查詢無緣無故停止工作

[英]PHP / MySQL query stopped working for no apparent reason

我有一個頁面可以更改我的 MySQL 數據庫中的大量變量,到目前為止它們都運行良好,但是現在單個邏輯門內的所有查詢都無緣無故地停止工作。

我已經確認了以下內容:
- 門的“if”語句中張貼和使用的變量與預期一致
- 邏輯門按預期觸發(我可以在其中回顯內容等)。
- 數據庫連接建立,我在同一個連接變量上成功地在這個邏輯門之前和之后運行了各種類型的查詢。
- 連接用戶已啟用所有特權,上述圍繞此邏輯門的查詢正在成功使用類似的功能。

這是邏輯門:

if (!empty($_POST["addqual"])){
    $coladqual = $_POST["addqual"];
    $sqlf = "ALTER TABLE users ADD UNIQUE ('$coladqual') INT( 2 ) NOT NULL";
    $conn->query($sqlf);
    $sqlc = "INSERT INTO competencebonus (competence,bonus)
    VALUES ($coladqual,0)";
    $conn->query($sqlc);
}

我嘗試了多種更改,但無論我做什么,它們似乎都無法執行。 在這兩個之前和之后,我在其他邏輯門中至少有 20 個其他查詢,它們之間似乎幾乎沒有區別,除了這兩個根本不起作用。

編輯 - 這是錯誤(感謝所有為我提供錯誤報告語法的人)

您的 SQL 語法有錯誤; 檢查與您的 MySQL 服務器版本相對應的手冊,以獲取在第 1 行的 ''TestAA') INT(2) NOT NULL UNIQUE' 附近使用的正確語法

令我感到奇怪的是,只有右括號在后輸入 (TestAA) 周圍。 它應該兩者兼而有之嗎?

我嘗試更改語法並收到以下錯誤:

密鑰“TestAB”的重復條目“0”

語法是:

$sqlf = "ALTER TABLE users ADD `$coladqual` INT( 2 ) NOT NULL UNIQUE";

最終編輯:

讓它工作。 刪除了 Jeff Pucket II 推薦的“NOT NULL”語句。 不知何故,這與刪除括號和使用反引號而不是撇號相結合使事情起作用。 感謝那些有耐心幫助我解決這個問題的人。

看起來您正在嘗試使用唯一的非空列更改現有表。 如果表中已經存在任何行,我希望這會失敗,除非您的引擎歸零。 即使這樣,如果由於唯一約束而存在多個記錄,這也會失敗。 還要確保添加的列名不存在。

要使用 MySQLi 獲取錯誤,請嘗試: $result = $conn->query($sqlf) or die($conn->error);

'unique' 約束應該放在查詢的末尾

$sqlf = "ALTER TABLE users ADD ('$coladqual') INT( 2 ) NOT NULL UNIQUE";

錯誤檢查取決於您正在運行的 MySQL 版本

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM