【问题标题】:MySQL Error: Unknown column in 'field list' errorMySQL 错误:“字段列表”错误中的未知列
【发布时间】:2012-11-07 01:00:01
【问题描述】:

大家好,我的 MySQL 有问题,我正在尝试在表中插入数据,但它返回此错误消息

致命错误:SQL: SELECT e.idtarea AS 'idTarea', e.detalle AS 'detalle', e.precio AS 'precio', e.idOrdenReparacion AS 'idOrdenReparacion', e.fecha AS 'fecha', concat('Editar', 'Eliminar' ) AS Opciones 来自 Tarea e WHERE e.idtarea like '%%' ORDER BY e.idtarea;,错误:“字段列表”中的未知列“e.fecha” /opt/lampp/htdocs/scep/tareas.php 在第 75 行

这是我的代码:

    $SQL="

      SELECT 
        e.idtarea AS 'idTarea', 
        e.detalle AS 'detalle', 
        e.precio AS 'precio', 
        e.idOrdenReparacion AS 'idOrdenReparacion', 
        e.fecha AS 'fecha', 
        concat('<a href=\'editarTarea.php?id=',e.idtarea,'\'>Editar</a>&nbsp;','<a href=\'eliminarTarea.php?id=',e.idtarea,'\' onclick=javascript:confirm(\'Eliminar?>\')>Eliminar </a>') AS Opciones 
      FROM Tarea e ".$FILTRAR_POR." 
      ORDER BY e.idtarea;";

      $RESULT = mysql_query($SQL) or trigger_error("SQL: $SQL, Error: " . mysql_error(), E_USER_ERROR); 

来自数据库的表皮重:

CREATE TABLE IF NOT EXISTS `Tarea` (
   `idTarea` int(11) NOT NULL AUTO_INCREMENT,
   `detalle` varchar(45) COLLATE latin1_danish_ci DEFAULT NULL,
   `precio` varchar(45) COLLATE latin1_danish_ci DEFAULT NULL,
   `idOrdenReparacion` int(11) NOT NULL DEFAULT '0',
   `fecha` date DEFAULT NULL,
   PRIMARY KEY (`idTarea`,`idOrdenReparacion`),
   KEY `fk_Tarea_OrdenReparacion1_idx` (`idOrdenReparacion`)
  ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_danish_ci AUTO_INCREMENT=2 ;

.....

  ALTER TABLE `Tarea`
  ADD CONSTRAINT `fk_Tarea_OrdenReparacion1` FOREIGN KEY (`idOrdenReparacion`) 
  REFERENCES `OrdenReparacion` (`idOrdenReparacion`) ON DELETE NO ACTION ON UPDATE NO ACTION;

【问题讨论】:

  • 这意味着你没有任何名称为e.fecha的冒号
  • 澄清一下,你真的要在这里插入数据吗?
  • 是的 fecha 是数据类型,我想稍后使用 e.fecha 在表格中显示它...我使用 e.idtarea 通过editarTarea.php 编辑表格

标签: mysql


【解决方案1】:

您是否验证过该表的先前版本不存在而列不存在?如果表已经有一个版本,那么您的 SQL 将不会更改表中的列。

【讨论】:

  • 嗯,我通过 phpMyAdmin 添加了 fecha 列,然后我进行了转储
  • 要尝试的另一件事是查看当您从选择列表中删除该命令时该命令是否运行。有时我看到另一个错误导致出现看起来有效的奇怪问题。如果您仍然收到错误,但是当您从选择列表中删除该字段时它只是改变了,那么可能会出现其他问题。
  • 我这样做了,这修复了错误,但它没有显示表格中的任何其他值。顺便说一句,我需要显示 fecha 列。我真的很困惑
  • 您确定要连接到您在 PHPMyAdmin 中连接的同一个数据库吗?如果您希望在查询运行时返回结果并且您没有得到任何结果,那么听起来您可能正在运行数据库的过时版本。您是否可能在某个时候创建​​了另一个名称不同但表结构相似的数据库?
  • 是的,我通过 mysql 控制台编辑了表格,它工作了,数据库是一样的(这很奇怪),也许 phpMyAdmin 出了问题,所以对于以后的修改,我将直接使用控制台。非常感谢。
【解决方案2】:

字段名和别名必须用反引号括起来,而不是像您那样用单引号括起来。更新查询:

$SQL="SELECT 
    e.idtarea AS `idTarea`, 
    e.detalle AS `detalle`, 
    e.precio AS `precio`, 
    e.idor AS `idOrdenReparacion`, 
    e.fecha AS `fecha`, 
    concat('<a href=\'editarTarea.php?id=',e.idtarea,'\'>Editar</a>&nbsp;','<a href=\'eliminarTarea.php?id=',e.idtarea,'\' onclick=javascript:confirm(\'Eliminar?>\')>Eliminar </a>') AS Opciones 
  FROM Tarea e ".$FILTRAR_POR." 
  ORDER BY e.idtarea;";

【讨论】:

  • echo $SQL; 显示什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-21
  • 2013-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多