データベースへのドクトリンクエリに問題があり、何が問題なのかわかりません。これが取引です:これは私がデータベースを作成するために使用した実際のmysqlクエリです:
create table productos (
codigoProducto int (8) unsigned auto_increment primary key,
nombre varchar(100) not null,
id_categoria smallint(3) unsigned,
descripcion text,
foto varchar(100),
precio smallint (4) unsigned not null,
visitado int (7),
habilitado boolean,
foreign key (id_categoria)
references categorias(id)
on update cascade
on delete restrict
)engine=innoDB;
create table facturas(
id int (8) unsigned auto_increment primary key,
id_comprador int (7) unsigned,
metodo_pago boolean,
forma_entrega boolean,
fecha datetime,
foreign key (id_comprador)
references compradores(id)
on update cascade
on delete cascade
)engine=innoDB;
create table detallefactura(
id int(8) unsigned auto_increment primary key,
id_producto int(8) unsigned,
id_factura int(8) unsigned,
cantidad smallint (4),
foreign key(id_producto)
references productos(codigoProducto)
on update cascade
on delete cascade,
foreign key(id_factura)
references facturas(id)
on update cascade
on delete cascade
)engine=innoDB;
「detalleFactura」は、請求書ごとに複数の製品を持つための「productos」と「facturas」の結合テーブルです。したがって、次のようにして、購入したすべての製品を1つの請求書にまとめようとしています。
static function traerProductosComprados($id){
$query = Doctrine_Query::create()
->select('d.id, p.nombre, p.precio, d.cantidad')
->from('Detallefactura d')
->leftjoin('d.Productos p')
->where('d.id_factura = ?',$id);
return $query->execute()->toArray();
}
クエリをエコーすると、次のように表示されます。
SELECT d.id, p.nombre, p.precio, d.cantidad FROM Detallefactura d LEFT JOIN d.Productos p WHERE d.id_factura = ?
これをphpmyadminに貼り付けると、次のエラーがスローされます。
1064-SQL構文にエラーがあります。'WHERE d.id_factura =?の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。1行目でLIMIT0、30';
私は今アイデアがありません、私が欠けている何かが他にあるかどうか教えてください!