Avko 19.08.2020 13:36
Predmet:PHP PDO ne prihvaca ime table kao parametar

Trebalo mi je jedno dobrih tjedan dana da ovo otkrijem.

ovo ne radi

PreuzmiIzvorni kôd (Text):
  1. $sql='INSERT INTO :imeTable (red.broj, grad, stanovnika)
  2.         VALUES (:redbroj, :grad, :stanovnika)
  3.         ON DUPLICATE KEY UPDATE
  4.         stanovnika=:stanovnika
  5.         ';
  6.                                                                
  7. $stmt = $pdo->prepare($sql);
  8. $stmt->bindValue(':imeTable', $imeTable);
  9. $stmt->bindValue(':redbroj', $redbroj);
  10. $stmt->bindValue(':grad', $grad);
  11. $stmt->bindValue(':stanovnika', $stanovnika);
  12. $stmt->execute();      


jednom je zxz reao da pristupimo sql upitu kao obicnom stringu kojega mozemo kao hocemo, ocemo ga sprijeda ili straga razdvojiti pa iz toga proizlazi da ovo dolje radi:

PreuzmiIzvorni kôd (Text):
  1. $sql='INSERT INTO ' . $imeTable . ' (red.broj, grad, stanovnika)
  2.         VALUES (:redbroj, :grad, :stanovnika)
  3.         ON DUPLICATE KEY UPDATE
  4.         stanovnika=:stanovnika
  5.         ';
  6.                                                                
  7. $stmt = $pdo->prepare($sql);
  8. $stmt->bindValue(':redbroj', $redbroj);
  9. $stmt->bindValue(':grad', $grad);
  10. $stmt->bindValue(':stanovnika', $stanovnika);
  11. $stmt->execute();      

Gjoreski 19.08.2020 17:28
Predmet:Re: PHP PDO ne prihvaca ime table kao parametar

ovo tvoje nije klasican string , nema nista ovakvo :stanovnika u klasican sting

Avko 20.08.2020 12:00
Predmet:Re: PHP PDO ne prihvaca ime table kao parametar

Citiraj Gjoreski:
ovo tvoje nije klasican string , nema nista ovakvo :stanovnika u klasican sting

ma to je samo primjer, opcenito. To je broj stanovnika.
Glavno je to da se ne prihvaca imeTable kao parametar. To sam htio reci

zxz 21.08.2020 00:21
Predmet:Re: PHP PDO ne prihvaca ime table kao parametar

ovo ON DUPLICATE KEY UPDATE mislim da je visak odnsno nema smisla koliko se sjecam jer kod PDO kada naidje na gresku procedura staje tako da je ovo djaba napisano.
Mogu provjeriti jer nisam 100% siguran.

Moze se napisati i ovako:
$data = [
'redbroj' => $redbroj,
'grad' => $grad,
'stanovnika => $stanovnika];
$sql = "INSERT INTO $imeTable (redbroj, grad, stanovnika) VALUES (:redbroj, :grad, :stanovnika)";
$stmt= $pdo->prepare($sql);
$stmt->execute($data);

Avko 21.08.2020 08:49
Predmet:Re: PHP PDO ne prihvaca ime table kao parametar

Citiraj zxz:
ovo ON DUPLICATE KEY UPDATE mislim da je visak odnsno nema smisla koliko se sjecam jer kod PDO kada naidje na gresku procedura staje tako da je ovo djaba napisano.
Mogu provjeriti jer nisam 100% siguran.

Moze se napisati i ovako:
$data = [
'redbroj' => $redbroj,
'grad' => $grad,
'stanovnika => $stanovnika];
$sql = "INSERT INTO $imeTable (redbroj, grad, stanovnika) VALUES (:redbroj, :grad, :stanovnika)";
$stmt= $pdo->prepare($sql);
$stmt->execute($data);

znaci ti koristis mysqli, a ne pdo?

zxz 22.08.2020 10:09
Predmet:Re: PHP PDO ne prihvaca ime table kao parametar

Da koristim najcsce mysqli PDO koristim za zabelu sesije.

Avko 23.08.2020 11:04
Predmet:Re: PHP PDO ne prihvaca ime table kao parametar

Citiraj zxz:
Da koristim najcsce mysqli PDO koristim za tabelu sesije.

prenosis imena tabela sesijom, $_SESSION['imeTable'] ?

zxz 23.08.2020 20:36
Predmet:Re: PHP PDO ne prihvaca ime table kao parametar

Ne ne $_SESSION je globlna variabla odnosno super globalna koja se upisuje u tabelu sesije.
E ja imam zasebnu klsu PDO konekcije za ovu tabelu jer ja hocu da mi je dostupna i napr kada se registrujes onda upsujem i tvoj id u tu tabelu a moze i jos stosta.
Mozemo ovo obraditi u zaebnoj temi ako hoces.

Avko 24.08.2020 09:09
Predmet:Re: PHP PDO ne prihvaca ime table kao parametar

Netreba, nisam još na toj razini znanja tako da mislim da nebi pola toga shvatio.

zxz 24.08.2020 09:40
Predmet:Re: PHP PDO ne prihvaca ime table kao parametar

Da bar napomenem.
Ti mozes koristiti globalne variable $_SESSION samo neces imati svoju tablicu gdje to mozes vidjeti.