SELECT address
FROM user_address
WHERE username = '$user->name'
ORDER BY time DESC
LIMIT 1 下面是我能理解的SQL查询。如何将其转换为Drupal的7 PHP?我试着弄清楚这一天,我尝试了不同的方法,但似乎我只是在这方面做得不好。
发布于 2018-03-06 15:20:21
您可以使用db_select:
$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:
$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:
$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);发布于 2018-03-05 03:53:04
为此,我们使用db_select()或db_query() --第一个更好。
$query = db_select('user_address', 'u');
// Add condition and fields
$query->condition('u.username', ‘james’)
$query->fields('u’ array('u.address'));//执行
$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以满足您的需要。
发布于 2018-03-05 10:19:53
试试这个:
$result = db_select('user_address', 'ua')
->fields('ua', array('address'))
->condition('ua.username', $user->name)
->execute()
->fetchAll();
https://stackoverflow.com/questions/49102383
复制相似问题