2014-07-23 65 views
-1

我對mysql很新,我寫了這個php腳本,它在mysql數據庫表中創建了一個新行,並且它工作正常,但是無論它存在與否,它都會添加此行。我需要的是我的腳本檢查表中的「用戶名」列,如果我們沒有這樣的用戶名將整行添加到表中,如果我們有這樣的用戶名只是更新「分鐘」列。提前致謝。
將數據庫添加到mysql表的條件

<?PHP 

    $user_name = "root"; 
    $password = "12345i"; 
    $server = "localhost"; 
    $database = "maz_database"; 

    $db_handle = mysql_connect($server, $user_name, $password); 
    $db_found = mysql_select_db($database, $db_handle); 

    if ($db_found) { 

    $SQL = "INSERT INTO maz_table (Username,Password,Email_address,Address,Minutes,Tags) VALUES('maz','pass','[email protected]','london',2000,'')"; 

    $result = mysql_query($SQL); 
    mysql_close($db_handle); 
    print "Records added to the database"; 

    } 
    else { 

    print "Database NOT Found "; 
    mysql_close($db_handle); 

    } 

?> 
+1

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – esqew

+0

如果你想檢查一行是否存在,使用'mysql_num_rows()' - Plus,如果你想避免重複,設置你的列類型爲'UNIQUE' <= done deal ;-) –

+0

謝謝Fred,I應該首先看看這些語句,看看它們是如何工作的。這是我第二天使用mysql的。 – user3409828

回答

1

您需要添加ON DUPLICATE KEY UPDATE指定何時記錄已經存在的事。

例子:

INSERT INTO maz_table (Username,Password,Email_address,Address,Minutes,Tags) 
VALUES ('maz','pass','[email protected]','london',2000,'') 
ON DUPLICATE KEY UPDATE Minutes = $minutesvariable 

其中username是你的主鍵。

+0

感謝Michael的回覆,我是否需要if else語句或者如果不存在語句才能實現此目的?我應該如何處理分鐘變量?對不起,我有這方面的基本知識。 – user3409828

+0

您不需要別的,因爲您告訴它插入值,如果值已經存在,那麼只需更新它。 請參閱此頁面瞭解如何使用變量:http://www.w3schools.com/php/php_mysql_insert.asp –

相關問題