2016-06-12 14 views
0

我有一個包含三列的數據庫:ID,userName,反饋 我希望在userName相同時更新反饋值。如果列中存在相同名稱(在MySQL中使用PHP),則更新行中的值

我的PHP代碼:

<?php 
conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 
$value = $_POST['name']; 
$value2 = $_POST['message']; 
$sql = "INSERT INTO js (userName, feedback) VALUES('$value', '$value2'); 
if ($conn->query($sql) === TRUE) { 
echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
}; 

$conn->close(); 
?> 

回答

0

如果你想使用MySQL,你首先應該定義在userName列的唯一索引來做到這一點。

ALTER TABLE js 
ADD CONSTRAINT u_userName UNIQUE (userName) 

編輯你的插入查詢是這樣的:

INSERT INTO js (userName, feedback) VALUES ('$value', '$value2') 
    ON DUPLICATE KEY UPDATE feedback=VALUES(feedback); 

現在,如果重複鍵衝突是由MySQL命中,反饋值將被更新,而您的用戶名等於行內。

或者你在PHP中實現一個更新邏輯,並檢測表中是否已經有一個用戶名相同的條目。

相關問題