Sql 如何传递$node->;nid转换为update语句
我正在尝试使用以下代码更新Drupal7中的一个节点Sql 如何传递$node->;nid转换为update语句,sql,drupal-7,Sql,Drupal 7,我正在尝试使用以下代码更新Drupal7中的一个节点 db_更新('table')) ->字段(数组('column1'=>1)) ->条件('entity_id',2',=') ->执行(); 该语句按预期工作:column1的值更新为1,其中实体_id=2 但是,我试图用当前节点替换2 如果我使用return$node->nid然后按预期返回当前节点。如果我尝试将$node->nid放入查询中,它不会验证 下面的代码不返回任何内容;查询失败了 db_update('table') -&
db_更新('table'))
->字段(数组('column1'=>1))
->条件('entity_id',2',=')
->执行();
该语句按预期工作:column1的值更新为1,其中实体_id=2
但是,我试图用当前节点替换2
如果我使用return$node->nid
然后按预期返回当前节点。如果我尝试将$node->nid
放入查询中,它不会验证
下面的代码不返回任何内容;查询失败了
db_update('table')
->fields(array('column1' => 1))
->condition('entity_id', $node->nid, '=')
->execute();
黑暗中的刺杀: 试一试 在上面几行之前 或者只分配一个变量以返回%node->nid
然后将变量放在$node->nid?中,我觉得您的代码很好。你能粘贴错误信息吗?能显示你正在使用的完整代码吗?如果您得到任何错误代码,您使用的是哪个钩子,以及您得到的错误代码?Drupal没有任何全局
$node
@kiamlaluno global$node本身不做任何事情……但它应该使$node对象在上述函数的范围内可见,并在后续行中使用一个箭头操作符。在任何情况下都是在黑暗中拍摄。如果我添加global$node
在Drupal函数中,访问$node->nid
时会出现错误,因为$node
不是对象(Drupal不初始化$node
)。如果函数已经获取$node
作为参数,PHP可能会返回一个关于用全局变量重写局部变量的错误。OP应该说明它在哪里使用该代码,因为上下文非常重要,而且到目前为止,问题中缺少信息。@Kiamaluno明白了!我已经有一段时间没有和Drupal合作了。。。。希望有一个简单的一行。。。我的D7是如何变化的:)等着看Drupal8,你会想知道这是否仍然是Drupal代码<代码>;)代码>
global $node;