首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将SQL查询转换为Drupal 7 PHP规则

将SQL查询转换为Drupal 7 PHP规则
EN

Stack Overflow用户
提问于 2018-03-05 01:45:27
回答 4查看 707关注 0票数 0
代码语言:javascript
复制
SELECT address
  FROM user_address
 WHERE username = '$user->name'
 ORDER BY time DESC
 LIMIT 1 

下面是我能理解的SQL查询。如何将其转换为Drupal的7 PHP?我试着弄清楚这一天,我尝试了不同的方法,但似乎我只是在这方面做得不好。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-03-06 15:20:21

您可以使用db_select

代码语言:javascript
复制
$results = db_select('user_address', 'ua')
        ->fields('ua', array('address'))
        ->condition('ua.username', $user->name, '=')
        ->orderBy('ua.time', 'DESC')
        ->range(0,1)
        ->execute()
        ->fetchAll();
  var_dump($results);

否则,如果要编写整个SQL,可以使用db_query

代码语言:javascript
复制
$results = db_query("SELECT address
  FROM user_address
 WHERE username = :username
 ORDER BY time DESC
 LIMIT 1 ", array(':username' => $user->name))->fetchAll();

var_dump($results);

最后,您可以使用db_query_range

代码语言:javascript
复制
$page = 0;
$limit = 1
$results = db_query_range("SELECT address
      FROM user_address
     WHERE username = :username
     ORDER BY time DESC", 
    $page * $limit, 
   $limit,   
   array(':username' => $user->name))
   ->fetchAll();

    var_dump($results);
票数 0
EN

Stack Overflow用户

发布于 2018-03-05 03:53:04

为此,我们使用db_select()或db_query() --第一个更好。

代码语言:javascript
复制
 $query = db_select('user_address', 'u');

// Add condition and fields 
$query->condition('u.username', ‘james’)
 $query->fields('u’ array('u.address'));

//执行

代码语言:javascript
复制
    $result = $query->execute();
   foreach ($result as $record) {
    // Do something with each $record
     }

有关更多信息,请参见https://www.drupal.org/docs/7/api/database-api/dynamic-queries/introduction-to-dynamic-queries

update:参见条件部分。此外,您还可以将其放在站点的模块或php可执行区域中,或者通过drush命令行。更改用户名James以满足您的需要。

票数 0
EN

Stack Overflow用户

发布于 2018-03-05 10:19:53

试试这个:

代码语言:javascript
复制
$result = db_select('user_address', 'ua')
		->fields('ua', array('address'))
		->condition('ua.username', $user->name)
		->execute()
		->fetchAll();

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49102383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档