我從來沒有問過任何其中之一,我通常可以通過 想到或找到一個發佈的想法。 我嘗試過我想到的方式,嘗試使用看起來應該工作但不去的CASE示例。它不會在任何情況下更新。重複密鑰上的Mysql更新表僅當BlahVAl <BlahRowVal
這裏確定是什麼,我試圖做的:
$Mysqlinfo="INSERT INTO `$PNum` (P_IDNum, P_Name, Raw_Time, Total_Time, T_Mode)
VALUES ('$PersId', '$_POST[PersonaName]', '$Stats_Vals[1]', '$Stats_Vals[2]', '$Stats_Vals[5]')
ON DUPLICATE KEY UPDATE Car_Model='$Stats_Vals[1]', Total_Time='$Stats_Vals[5]', Raw_Time='$Stats_Vals[7]', T_Mode='$Stats_Vals[2]' (there was originally the "; at end here)
***WHERE Raw_Time > '$Stats_Vals[7]'";***
(有多個名稱存在,但我刪除了一些,所以還不是SOOO龍,所以不介意這麼多的$ Stats_Vals數字作爲結構)。
這個東西沒有在最後的WHERE工作,除非它總是會插入或更新,我知道哪裏不適用與ON DUPLICATE KEY不幸的是,什麼是一個簡單的等價物? 它必須爲纈氨酸chk和做任何,如果條件不是真的。
噢,它被格式化爲用於PHP腳本。 :0)
非常感謝您的幫助!
編輯 - 這是一些最不我想實現的條件PHP/SQL代碼,它是由一個應用程序調用:
<?php
hostname and
database info here
Variables, $_POST... etc.
$link = mysql_connect($hostname, $username, $password);
if (!$link) {
die('Connection failed: ' . mysql_error());
}
else{
echo "Connection to Server successful!" . PHP_EOL; <for testing from web
}
$db_selected = mysql_select_db($database, $link);
if (!$db_selected) {
die ('Can\'t select database: ' . mysql_error());
}
else {
echo "Database successfully selected!". PHP_EOL;
$Mysqlinfo="INSERT INTO `$PNum` (P_IDNum, P_Name, Raw_Time, Total_Time, T_Mode)
VALUES ('$PersId', '$_POST[PersonaName]', '$Stats_Vals[1]', '$Stats_Vals[2]', '$Stats_Vals[5]')
ON DUPLICATE KEY UPDATE Car_Model='$Stats_Vals[1]', Total_Time='$Stats_Vals[5]', Raw_Time='$Stats_Vals[7]', T_Mode='$Stats_Vals[2]'";
if (!mysql_query($Mysqlinfo,$link))
{
mysql_close($link);
die('Error: ' . mysql_error());
}
}
mysql_close($link);
?>
它的工作原理不同的是未以下的僅更新,如果條件Raw_Time較少。 再次感謝!
我想我可能需要在幾個步驟中做到這一點,努力工作上述答案英寸我認爲我的頭需要休息首先LOL THX! – user3591080