2016-06-12 11 views
0

私は3つの列を持つデータベースを持っています: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クエリ:重複キー違反がmysqlのでヒットした場合

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

は今、フィードバックの値がしばらくの間、あなたのユーザ名が等しい行の内部で更新されます。

または、PHP内に更新ロジックを実装し、同じユーザー名を持つテーブル内にすでにエントリがあるかどうかを検出します。

関連する問題