drupal数据库查询更新删除操作

db_query()的第一个参数总是查询语句本身。剩下的参数都是一些动态值,用来验证和入到查询字符串中。可以将这些值放在一个数组中,或者将每个值都作为一个独立的参数。后者更常用一些。
我们应该注意到,使用这个语法,TRUE, FALSE 和NULL将会被自动转换为了等价的数字形式(0或1)。一般情况下,都不会因此出现问题。

在这些例子中,我们使用一个名为joke的数据库表,它包含了3个字段:节点ID(整数),版本ID(整数),还有包含笑话妙语的文本字段(关于joke模块的更多信息,参看第7章)。让我们从一个简单的查询入手。

1、从joke表中取出所有字段的所有记录,需要满足的条件为----字段vid的整数值等于$node->nid的值:


db_query('SELECT * FROM {joke} WHERE vid = %d', $node->vid);



2、向joke表中插入一行记录。新纪录中包含两个整数和一个字符串值。注意字符串值的占位符位于单引号中;这将帮助阻止SQL注入攻击。由于查询语句本身包含了单引号,所以我们在查询的外面使用了双引号:


db_query("INSERT INTO {joke} (nid, vid, punchline) VALUES (%d, %d, '%s')",$node->nid, $node->vid, $node->punchline);



3、修改joke表中的所有记录,需要满足的条件为----字段vid的整数值等于$node->vid的值。通过设置字段puchline等于$node->punchline包含的字符串值来修改所有的这些记录:


db_query("UPDATE {joke} SET punchline = '%s' WHERE vid = %d", $node->punchline,$node->vid);



4、从joke表中删除所有记录,需要满足的条件为----字段nid的整数值等于$node->nid的值:


db_query('DELETE FROM {joke} WHERE nid = %d', $node->nid);



表5-1数据库查询的占位符及其含义

占位符         含义
------------------------------------------------------------------------------
%s              字符串
%d              整数
%f              浮点数
%b              二进位数据;不要包含在' '
%%     插入一个%符 (比如,SELECT * FROM {users} WHERE name LIKE '%%%s%%')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值