[英]PHP & Mysql database updating problem
由於某些原因,當我將php代碼從mysql更改為mysqli時,一切都搞砸了。
例如,當用戶輸入一個等級時,我的mysql表通過輸入一個新行並更新正確的行來更新兩次。 我想知道如何解決此問題,使其僅更新新行並檢查是否沒有行輸入?
PHP代碼
// function to insert rating
function rate(){
$dbc = mysqli_connect ("localhost", "root", "", "sitename");
$text = strip_tags($_GET['rating']);
$update = "update vote set counter = counter + 1, value = value + ".$_GET['rating']."";
$result = mysqli_query($dbc,$update);
if(mysqli_affected_rows() == 0){
$insert = "insert into vote (counter,value) values ('1','".$_GET['rating']."')";
$result = mysqli_query($dbc,$insert);
}
}
舊的PHP代碼
// function to insert rating
function rate(){
$text = strip_tags($_GET['rating']);
$update = "update vote set counter = counter + 1, value = value + ".$_GET['rating']."";
$result = mysql_query($update);
if(mysql_affected_rows() == 0){
$insert = "insert into vote (counter,value) values ('1','".$_GET['rating']."')";
$result = mysql_query($insert);
}
}
怎么樣
if (mysqli_affected_rows($dbc) ==0){
相反,您應該合並這兩個語句。 這將要求您具有一個主鍵,可能名為id。
// function to insert rating
function rate() {
$dbc = mysqli_connect ("localhost", "root", "", "sitename");
$text = strip_tags($_GET['rating']);
$update = sprintf('INSERT INTO vote SET
id = 1,
counter = 1,
value = %1$d
ON DUPLICATE KEY UPDATE
counter = counter + 1,
value = value + %1$d',
$text);
mysqli_query($dbc,$update);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.