Thread [DBI] Syntaxfehler DBD::mysql::st execute failed und DBD::mysql::db selectrow_array failed
(5 answers)
Opened by saschaw at 2017-01-24 15:41
Du hast kein Problem mit Perl/CGI sondern deiner Datenbankprogrammierung. Ich verschiebe mal.
Kannst du bitte mal dein generiertes SQL in $sql in eine Logdatei oder die Shell ausgeben lassen? Quoting im SQL-Code??!? Uhhh, da macht man nette fehler! Und Feldbezeichner können sich mit internen Befehlen beißen, deswegen gibt es das bei MySQL in `....` zu setzen. Und wozu gibt es prepared Statements in DBI? Statt: Code: (dl
)
1 $sql="SELECT $qdbcols FROM $table WHERE stationid = $stationId AND sensid=$sensorId"; eher so: Code: (dl
)
1 $sql="SELECT ? FROM ? WHERE `stationid` = ? AND `sensid`=?"; Und bei Code: (dl
)
1 $sql="SELECT SUM($dbColName) AS \"SUM\" FROM $table WHERE stationid = $stationId AND". Code: (dl
)
1 $sql=qq{SELECT SUM(?) AS `SUM` FROM ? WHERE `stationid`=? AND `datetime` >= "? ?" AND LEFT(`datetime`,10) <= "? ?" AND `sensid`=?}; Schau mal rein: http://www.perl.com/pub/1999/10/DBI.html PS: CamelCase bei Variablennamen ist auch eher unlesbar, das ist aber meine Geschmacksasche. Last edited: 2017-01-25 12:56:07 +0100 (CET) |