我正在尝试从数据库中获取一些数据。我需要数据库中的名称特定数据。如何返回当前的 Drupal 用户名并在 WHERE 语句中使用它。
错误消息是
error:SQLSTATE[42S22]: Column not found: 1054 Unknown column 'admin' in 'where clause'.
我当前的代码是
global $user;
$cuname = $user->name;
$grid = new jqGridRender($conn);
$grid->SelectCommand = "SELECT uid,name,created,company_id FROM users WHERE company_id = (SELECT company_id FROM users WHERE name = $cuname)";
你需要在
镫子周围加上引号。
SELECT company_id FROM users WHERE name = '$cuname'
here-----------------^-------^
否则,数据库的东西你的意思是列名。顺便说一句,您应该考虑使用预准备语句来避免此类错误和SQL注入。
不要编写你的sql查询 - 以"drupal方式"做。使用视图模块:
https://www.drupal.org/project/views
我认为你应该使用db_select(https://api.drupal.org/api/drupal/includes!database!database.inc/function/db_select/7)或db_query(https://api.drupal.org/api/drupal/includes!database!database.inc/function/db_query/7)
db_select示例:
<?php
global $user;
$select = db_select('users', 'u');
$select->fields('u', array('uid', 'name'));
$select->condition('user', $user->name);
$result = $select->execute()->fetchAssoc();
?>