INSERT med pdo indsætter ikke mine poster

Tags:    pdo php mysql

Jeg kan ikke indsætte poster i min db med Insert, har efterhånden prøvet flere forskellige versioner. Jeg har gennemgået mine tabeller med navn og alt her stemmer.
Men min UPDATE virker upåklageligt.

min php kode:
Fold kodeboks ind/udPHP kode 




3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
hurtigt bud utested!!

har du tænkt over at update er et reseveret ord ??

prøv at sætte backtick omkring tabel navnet update, eller bedre ennu omdøb tabel navnet update til feks tbl_update

http://php.net/manual/en/language.operators.execution.php
http://dev.mysql.com/doc/refman/5.7/en/keywords.html


$upd = $DBH->prepare("INSERT INTO update(serial, name, address, po
skal vel være
$upd = $DBH->prepare("INSERT INTO `update`(serial, name, address, po

dvs med backtick omkring tabel navnet



Indlæg senest redigeret d. 11.01.2016 12:57 af Bruger #16075
Hej Ronny
Super mange tak, havde ikke lige tænkt på at update var et reserveret ord.
Har omdøbt tabellen til et andet navn, og det fungerer jo så smukt :-)

Tak for den hurtige respons, håber du får en god dag :-)




havde ikke lige tænkt på at update var et reserveret ord.

det burde du have gjort, du havde jo anvendt det ovenover i "UPDATE units SET...". :)

du ville have fået sammen problem hvis du havde anvendt æøå i kollonne eller tabel navne, der er løsningen også det sammen omdøb eller nødløsningen backtick

du valgte den rigtige løsning med at omdøbe tabellen, brug af backtick er kun en nødløsning.

hvis du feks skulle have kørt mod en MSSQL database, så skulle du have anvendt [ istedet for `

et skræk eks, dårlig navngivning af kollonne, by er reseveret ord (ORDER BY, og LIMIT er specifikt for mysql)
(utested)
Fold kodeboks ind/udKode 


det er jo en af fordelene ved PDO, at du nemt kan porterer coden fra en database til en anden, uden at ændre ret meget i coden, connection stringen skal selvføgelig ændres, men heller ikke andet i teorien, så jo mindre database spesifik du laver din code, jo nemmere er det at skifte databasen.
en anden er at Prepare Statement er klart forbedret iforhold til mysqli, bla at man kan anvende named placeholds (som du anvender ((:serial, :name, :address,......) ), frem for kun numbert placeholders (?), som man kun kan i mysqli




t