我正在尝试从数据库中获取一些数据。我需要数据库中的名称特定数据。如何返回当前的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)";
答案 0 :(得分:0)
你需要在stirngs周围加上引号。
SELECT company_id FROM users WHERE name = '$cuname'
here-----------------^-------^
否则数据库中的内容你的意思是列名。顺便说一下,你应该考虑使用 Prepared Statements 来避免这种错误和SQL注入。
答案 1 :(得分:0)
不要写你的SQL查询 - 这样做" drupal方式"。使用视图模块:
答案 2 :(得分:0)
我认为您应该使用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();
?>