Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Drupal中的SQL。在哪里_Mysql_Drupal_Drupal 7 - Fatal编程技术网

Mysql Drupal中的SQL。在哪里

Mysql Drupal中的SQL。在哪里,mysql,drupal,drupal-7,Mysql,Drupal,Drupal 7,以下作品 global $user; $items = array(); $sql = 'SELECT nid FROM {node} WHERE uid = :uid'; $result = db_query($sql, array(':uid' => $user->uid)); foreach ($result as $row) { $items[] = $row->nid; } dsm($items); 但是,当我想从同一数据库表中的“类型”列中选择内容类型“场所”

以下作品

global $user;
$items = array();
$sql = 'SELECT nid FROM {node} WHERE uid = :uid';
$result = db_query($sql, array(':uid' => $user->uid));
foreach ($result as $row) {
  $items[] = $row->nid;
}
dsm($items);
但是,当我想从同一数据库表中的“类型”列中选择内容类型“场所”时,我会使用以下命令出错

global $user;
$items = array();
$sql = 'SELECT nid FROM {node} WHERE uid = :uid AND type = venue';
$result = db_query($sql, array(':uid' => $user->uid));
foreach ($result as $row) {
  $items[] = $row->nid;
}
dsm($items);
DOException:SQLSTATE[42S22]:未找到列:1054未知列 “where子句”中的“地点”:从{node}中选择nid,其中uid=:uid和 类型=场地;数组([:uid]=>1)


我真的不明白这里有什么。该列称为“类型”,我没有要求它查找名为“地点”的列,我是吗?

将列与字符串进行比较时,您需要用引号将字符串括起来,如果您不这样做,优化器会将其视为一列(除非是数字)。试试这个:

$sql = "SELECT nid FROM {node} WHERE uid = :uid AND type = 'venue'"

当比较一个列和一个字符串时,您需要用引号将字符串括起来,如果不这样做,优化器会将其视为一个列(除非它是一个数字)。试试这个:

$sql = "SELECT nid FROM {node} WHERE uid = :uid AND type = 'venue'"

试试
“从{node}中选择nid,其中uid=:uid和type='venue'”
,它是一个常量文本,不是吗?试试
“从{node}中选择nid,其中uid=:uid和type='venue'”
,它是一个常量文本,不是吗?谢谢!谢谢你提供的额外信息,帮助我了解它为什么不起作用!非常感谢。谢谢你提供的额外信息,帮助我了解它为什么不起作用!