好吧,我有一个表,帮助像如下图所示:我需要在我的MySQL查询浏览器中的MySQL查询
NAME: Jobs:
Kate Contractor
John Janitor
Bob Writer
Don Waitress
比方说,我想取代凯特的工作是艺术家。我将如何做到这一点MySQL查询。我知道它涉及INSERT INTO thingy,但我不确定。
好吧,我有一个表,帮助像如下图所示:我需要在我的MySQL查询浏览器中的MySQL查询
NAME: Jobs:
Kate Contractor
John Janitor
Bob Writer
Don Waitress
比方说,我想取代凯特的工作是艺术家。我将如何做到这一点MySQL查询。我知道它涉及INSERT INTO thingy,但我不确定。
UPDATE table_name SET Jobs="job_type" WHERE name="Kate";
铭记,这是不正常参数化使用在网络应用程序中,如果它暴露在网络中,也不能以任何方式防止恶意使用。
也不是“Kate的一个唯一的标识符,所以应该有一个主键(任何类型),用于从表格中识别特定的“凯特”,在该点处的查询被修改为:
UPDATE table_name SET Jobs="job_type" WHERE primary_key_name="unique_identifier_for_user";
看看mysql update syntax。
要做替换,您需要唯一标识要替换的数据库行。通常有一个ID列来做到这一点。你的桌子有一个吗?
您使用UPDATE thingy而不是INSERT INTO thingy来更改现有数据。
如果只有一个凯特在数据库中,你可以做这样的事情:
UPDATE MY_TABLE_NAME SET乔布斯=“艺术家” WHERE name =“凯特”
要替换NAME =“凯特'如果你有一个ID列(其中999需要被Kate的实际ID替换),那么ID = 999,否则所有名为Kate的人都会变成一个艺术家。
编辑:
Ricebowl有,如果你让用户进入这个直接自由形式的好点。他们可以将具有特殊含义的字符放入SQL中,并对数据库执行非常糟糕的操作。首先了解基础知识,然后花一些时间阅读有关如何防止“SQL注入”攻击的信息。
这整个事情是我最喜欢的漫画之一所示:
(而看到source blog更多的讨论)
为什么,谢谢你,sir =]另外,一个-direct-连接到xkcd地带的源代码:http:// xkcd .COM/327 / – 2009-11-18 23:54:43
UPDATE jobs_table SET `Jobs` = 'Artist' WHERE `name` = 'Kate'
UPDATE ' JobsTable ' SET '乔布斯' = "艺术家" WHERE '名称' = "凯特"
另一种方式,不要FORET有关此功能
`REPLACE INTO jobs_table (`Jobs`, `name`) ('Artist', 'Kate')`
当你不知道,如果主键“凯特”的存在与否,你不必写
$a = mysql_query("select * where jobs = 'Kate'")
if($a)
update
else
insert
它变得更快更简单!
请不要大喊。所有大写字母和感叹号都是网上的喊声。 – 2009-11-18 23:42:46
@Eric J .;同意,并编辑。 – 2009-11-18 23:43:56
对不起家伙:(>。< – lab12 2009-11-18 23:45:01