2014-07-23 94 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 –

相关问题