(ODBC) Seltsame FM
Erwin
- datenbank
0 Axel Richter0 Erwin
Moin!
Umg.: MS Win98, accessDB und ODBC Treiber, SystemDSN, PERL DBI.
Der folgende Text soll in ein Blobfeld (in access heists Memofeld):
====================================cut==========================
Q: Wie parse ich ein multiple select?
<select name="test" size="6" multiple>
<option value="Test1"> Test1 </option>
<option value="Test2"> Test2 </option>
...
</select>
A: Mit CGI.pm ist das wie folgt zu machen:
use CGI qw(:standard);
@selected_values = param('test');
Dabei liefert die Methode param() alle ausgewählten Werte auf ein Array
im Kontext, 'test' ist der Name des *selects*.
=================================schnapp=========================
Es ergibt sich die FM
====FM=====
DBD::ODBC::db prepare failed: [Microsoft][ODBC Microsoft Access 97 -Treiber] Syntaxfehler (fehlender Operator) in Abfrageausdruck ''Q: Wie parse ich ein multiple select?
<select name="test" size="6" multiple>
<option value="Test1"> Test1 </option>
<option value="Test2"> Test2 </option>
...
</select>
A: Mit CGI.pm ist das wie folgt zu machen:
use CGI qw(:standard);
===============================schnipp============================
Das Statement s.u. an sich wird ausgeführt, andere Inhalte die ich mir aus einer MetaDatei ziehe werden einwandfrei eingefügt.
my $sth = $dbh->prepare("INSERT INTO content VALUES('$section_i', '$section', '$subject', '$date', '$body') ");
Whats wrong ?
Bis dann, Rolf
Hallo,
Es ergibt sich die FM
====FM=====
DBD::ODBC::db prepare failed: [Microsoft][ODBC Microsoft Access 97 -Treiber] Syntaxfehler (fehlender Operator) in Abfrageausdruck ''Q: Wie parse ich ein multiple select?
^Hier danach fehlt der Operator.
my $sth = $dbh->prepare("INSERT INTO content VALUES('$section_i', '$section', '$subject', '$date', '$body') ");
In welcher der Variablen steht denn der Text ?
Er steht dort offensichtlich so drin:
'Q: Wie parse ich ein multiple select? ....'
Damit ergibt sich im Statement:
INSERT INTO content VALUES('...', '...', '...', '...', ''Q: Wie parse ich ein multiple select? ....'')
Das '' ist dann der Value und nach diesem und vor Q fehlt ein Operator.
Tipp:Wussten Sie schon? Man kann soetwas erkennen, wenn man das SQL Statement zunächst einer String-Variablen zuweist und diese dann testweise ausgeben lässt.
viele Grüße
Axel
Hallo Axel,
vielen Dank!
In welcher der Variablen steht denn der Text ?
Er steht dort offensichtlich so drin:
'Q: Wie parse ich ein multiple select? ....'
Der folgende Text steht ganz genauso in der Variablen $body
====cut=======================================================
Q: Wie parse ich ein multiple select?
<select name="test" size="6" multiple>
<option value="Test1"> Test1 </option>
<option value="Test2"> Test2 </option>
...
</select>
A: Mit CGI.pm ist das wie folgt zu machen:
use CGI qw(:standard);
@selected_values = param('test');
Dabei liefert die Methode param() alle ausgewählten Werte auf ein Array
im Kontext, 'test' ist der Name des *selects*.
====cut========================================================
Es sieht so aus, als würde ein Zeichen innerhalb dieses Textes nicht aktzeptiert werden, ist es das @ oder das ' - vermutlich Letzteres?
Wie auch immer, ich werde das mal testen heute abend.
Viele Grüße, Rolf