Thread DBI tabelle erstellen
(8 answers)
Opened by slicer at 2011-06-30 21:48
Also das funktioniert:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #!/usr/bin/perl use strict; use warnings; use DBI; my $dbname='xxx'; my $user='anonymous'; my $pass='???'; my $dbh = DBI->connect("dbi:Pg:dbname=$dbname", $user, $pass, {RaiseError => 1, AutoCommit => 1}) or die $DBI::errstr; my $cname='nur-ein-test'; # entwerten von doppelten Anführungszeichen durch verdoppeln, # wenn sie im Spaltennamen vorkommen $cname=~/"/""/gs; # es kann aber dennoch sein, dass fremder Code eingeschleust wird. $dbh->do(qq'CREATE TABLE test ( "$cname" text, datum date, id int )'); $dbh->disconnect(); Wichtig ist hier, dass der Spaltenname in doppelten Anführungszeichen steht steht. Sei aber vorsichtig, von wo du den Spaltennamen übernimmst. Man kann einigen Unsinn anstellen, wenn ungeprüft in die DB geschrieben wird. Ich halte es für eine Fehlplanung der DB, wenn automatisiert neue Tabellen anlegt werden, das lässt sich auch anders lösen. |