Bungiorno a tutti hocercato nel forum ed ho trovato una discussione simile ma non uguale al mio probema.
Sono due giorni che cerco una soluzione a questa cosa apparentemente molto banale.
SI tratta di una select INNER JOIN tra due tabelle con un WHERE.
Se la eseguo ricevo questo errore :
Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in........
Mi sembra che l'errore sta nel WHERE e din modo particolare leggendo online ho scoperto che potrebbe essere un problema fare questo: WHERE prodotti.id = prodotti.id';
suggeriscono di fare ad esempio: WHERE prodotti.id = :id'; e poi nel bindparam stessa cosa $stmt->bindParam(':id', $id, PDO:: PARAM_INT);
in effetti facenso così funziona a metà, nel senso che mi restituisce i dati detta prima tabella 'prodotti' ignorando la seconda 'fornitori'.
Qualcuno sa dirmi dove sbaglio? Grazie
P.S. Aggiungo che come da immagine allegata sotto, se la provo sul db (senza bidding) funziona..
Sono due giorni che cerco una soluzione a questa cosa apparentemente molto banale.
SI tratta di una select INNER JOIN tra due tabelle con un WHERE.
PHP:
$sql = 'SELECT prodotti.nome, prodotti.prezzo, prodotti.sku, prodotti.produttore, fornitori.nome
FROM prodotti INNER JOIN fornitori
ON prodotti.fornitori_id = fornitori.id
WHERE prodotti.id = :prodotti.id';
$id = 1; // per esempio
$stmt = $this->db->prepare($sql);
$stmt->bindParam(':prodotti.id', $id, PDO::PARAM_INT);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
$prodlist[$id] = $results;
var_dump($prodlist);
Se la eseguo ricevo questo errore :
Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in........
Mi sembra che l'errore sta nel WHERE e din modo particolare leggendo online ho scoperto che potrebbe essere un problema fare questo: WHERE prodotti.id = prodotti.id';
suggeriscono di fare ad esempio: WHERE prodotti.id = :id'; e poi nel bindparam stessa cosa $stmt->bindParam(':id', $id, PDO:: PARAM_INT);
in effetti facenso così funziona a metà, nel senso che mi restituisce i dati detta prima tabella 'prodotti' ignorando la seconda 'fornitori'.
Qualcuno sa dirmi dove sbaglio? Grazie
P.S. Aggiungo che come da immagine allegata sotto, se la provo sul db (senza bidding) funziona..
Allegati
Ultima modifica: