2012-06-25 20 views
0

如何插入或替换数据库上的值?插入或替换数据库上的值

基本上我需要替换数据库上的一行而不改变其余的信息,在这种情况下是基于id的form_email行。

在以前的实例,我得到的电子邮件:

$query = "SELECT `form_email` FROM `$table_name_email` WHERE `id` = $form_id"; 
$result = mysql_query($query) or die(mysql_error()); 

while($row_email = mysql_fetch_array($result_email)){ 
    $email = $row_email[form_email]; 
    echo $email; 
} 

,但我有问题,了解如何inser或更换电子邮件

这是表结构,以防万一。

CREATE TABLE IF NOT EXISTS `contactforms` (
    `id` int(11) NOT NULL auto_increment, 
    `form_slug` varchar(100) NOT NULL, 
    `form_title` varchar(200) NOT NULL, 
    `form_action` mediumtext NOT NULL, 
    `form_method` varchar(4) NOT NULL, 
    `form_fields` text NOT NULL, 
    `submit_button_text` varchar(200) NOT NULL, 
    `custom_code` mediumtext NOT NULL, 
    `form_style` int(10) NOT NULL default '0', 
    `form_email` text NOT NULL, 
    `form_success_message` mediumtext NOT NULL, 
    `form_thank_you_page` varchar(200) NOT NULL, 
    `form_success_title` varchar(150) NOT NULL default 'Form Success!', 
    `form_access` text NOT NULL, 
    `form_email_subject` varchar(250) NOT NULL, 
    `form_email_name` varchar(100) NOT NULL, 
    `form_pages` varchar(400) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=17 ; 

在此先感谢

+0

[“INSERT的可能重复IGNORE“与”插入...在重复密钥更新“](http://stackoverflow.com/questions/548541/insert-ignore-vs-insert-on-duplicate-key-update) – Sebas

+0

@ Sebas您提到的问题询问“INSERT IGNORE”与“INSERT ON DUPLICATE KEY UPDATE”(哪里和什么是最佳方法 - 两种可能中的一种)与“如何在数据库中插入或替换值?”有很大区别。如果问题没有提到最佳方法,它只是问如何去做? 就像说阿根廷的队友不是一个配偶,因为它比乌拉圭队友小:) – user983248

+0

是的,我拿起堆栈溢出引擎提出的列表中最接近的一个,我有点知道它不是准确地duplciate,但它是至少要注意,这个问题已被对待其他地方... – Sebas

回答

1

您可以使用SQL语句UPDATE。 它允许您更新某些记录某些领域,例如(伪代码):

UPDATE contactforms 
SET form_email = '[email protected]' 
WHERE id = 'someId' 

这将修改所有form_email领域[email protected]的行与ID someId :)