欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

得到 最近 最后 执行的 sql 语句 最新 sql 语句 有大用

1)启用 devel 模块 看sql 语句 一个个的仔细看

2)迟到的答案,但你可以经常转

$result = db_query($query, $arg1, $arg2);


快进了

echo sprintf($query, $arg1, $arg2);

exit;


drupal_set_message(sprintf($query, $arg1, $arg2), "status");





D7版与devel。

> = PHP 5.4

dpm(str_replace(['{', '}'], '', dpq($query, TRUE)));


<PHP 5.4

dpm(str_replace(array('{', '}'), '', dpq($query, TRUE)));




如果您有D7但没有Devel手,下面的代码段可能会有用 - 它可能不会处理每种类型的占位符,但它现在错误地假定所有的占位符都是字符串(这对我的使用来说很好)

function stringify_query( $query ){
  $s = preg_replace('/\}|\{/', '', $query->__toString());
  $a = $query->arguments();
  foreach ( $a as $key => $val ) {
    $a[$key] = '\'' . $val . '\'';
  }
  return strtr($s, $a);
}

我不认为是这样。但是,如果您只是为了调试目的,可以打开devel模块,这将显示您运行的查询。

其实你可以将变量'dev_query'设置为1,然后访问全局数组$ queries,但我不会推荐它。

来自  http://stackoverflow.com/questions/3137500/drupal-return-sql-string-from-db-query



 

3下投票接受

我不认为是这样。但是,如果您只是为了调试目的,可以打开devel模块,这将显示您运行的查询。

其实你可以将变量'dev_query'设置为1,然后访问全局数组$ queries,但我不会推荐它。

/* 下面是 d7 的 sql 语句调试 
//下面是调试的 语句. ,进行几个数组(db_query后面的参数数组)键值对的替换 ,
//在数组值的外面加上  单引号 ' ,,目的是为了sql中不报错
/*    
    $sql
="select u.uid as uid, u.name as name,d.field_diqu_value  as diqu,n.field_full_name_value  as full_name, u.mail as mail from users u
        inner join field_data_field_full_name n on u.uid=n.entity_id
        inner join field_data_field_diqu d on u.uid=d.entity_id
        where n.entity_type='user' and n.bundle='user'
          and d.entity_type='user' and d.bundle='user'
        and ( u.name like :name or  n.field_full_name_value like :full_name or u.mail like :mail ) "
;
$sql = str_replace(':name', "'".'%' . db_like($name) . '%'."'" ,$sql);
   
$sql = str_replace(':full_name', "'".'%' . db_like($full_name) . '%'."'" ,$sql);
   
$sql = str_replace(':mail', "'".'%' . db_like($mail) . '%'."'" ,$sql);
   
echo $sql;
*/


// 下面是真正执行的 sql 语句  
   
$results_db = db_query("select u.uid as uid, u.name as name,d.field_diqu_value  as diqu,n.field_full_name_value  as full_name, u.mail as mail from users u
        inner join field_data_field_full_name n on u.uid=n.entity_id
        inner join field_data_field_diqu d on u.uid=d.entity_id
        where n.entity_type='user' and n.bundle='user'
          and d.entity_type='user' and d.bundle='user'
        and ( u.name like :name or  n.field_full_name_value like :full_name or u.mail like :mail ) "
,
       
array(':name' => '%' . db_like($name) . '%',':full_name' => '%' . db_like($full_name) . '%',':mail' => '%' . db_like($mail) . '%'))->fetchAll();


普通分类: