Avatar billede triple-x Nybegynder
14. august 2005 - 16:14 Der er 8 kommentarer og
1 løsning

Indsæt ved hjælp af DBI

Hey eksperter

Så må jeg endnu en gang spørge om hjælp, har bøvlet med det hele natten og idag, men synes bare ikke jeg kan få det til at virke.

Igår aftes var Nielle herinde fra så flink at hjælpe mig igang med DBI og få det installeret.

Jeg har nu forstået hovedtrækkene, og har lavet nedestående kode.



#!c:/perl/bin/perl.exe
use strict;
use CGI ':standard';
use DBI;

my $DataBaseName = "links";
my $DataBaseHost = "localhost";
my $DataBaseUser = "root";
my $DataBasePass = "nm912552";

my $DataHandle = DBI->connect("DBI:mysql:database=$DataBaseName;host=$DataBaseHost",
"$DataBaseUser",
"$DataBasePass",
{ RaiseError => 1,
AutoCommit => 0 }) ¦¦ die "Unable to connect to $DataBaseHost because $DBI::errstr";

$DataHandle->do("CREATE TABLE bookmark (id INTEGER(5) NOT NULL auto_increment,
title VARCHAR(40) default NULL,
link VARCHAR(40) default NULL,
decrip VARCHAR(40) default NULL,
KEY id (id)
)");

my $title = param('title');
my $link = param('link');
my $descrip = param('descrip');

$DataHandle->do("INSERT INTO bookmark values(id,'$title','$link','$descrip')");

$DataHandle->disconnect();

-------------------------------------------------
and the HTML

<form name="bookmark" method="post" action="../cgi-bin/index.pl">
<p>
Titel :
<input type="text" name="title">
</p>
<p>
Link :
<input type="text" name="link">
</p>
<p>Beskrivelse:<br>
<textarea name="descrip"></textarea>
</p>
<p>
<input type="reset" name="Reset" value="Reset">
<input type="submit" name="Submit" value="tilf&oslash;j">
</p>
</form>

---------------------------------------------------
mit problem er nu at det giver en 500 fejl når det køres gennem en browser,
men hvis jeg udskifter :

my $title = param('title');
my $link = param('link');
my $descrip = param('descrip');

med

my $title = "titel";
my $link = "link";
my $descrip = "beskrivelse";

og kører scriptet direkte igennem en prompt så virker det hele fint.

Jeg håber en eller anden forstår hvor jeg vil hen, og kan hjælpe mig i den rigtig retning

Mvh Martin Tygsen
Avatar billede erikjacobsen Ekspert
14. august 2005 - 17:59 #1
Du kører godt nok under Windows, vil jeg gætte, men stadigvæk: Ved fejl 500 så kig i errorloggen fra webserveren - der plejer at stå hvad der galt med dit Perlscript.
Avatar billede triple-x Nybegynder
14. august 2005 - 18:07 #2
burde virke men gør det ikke :)

Kører på en localhost: Windows XP og apache.

Hvor finder jeg denne error log? synes ikke jeg kan finde nogle log filer der fortæller noget om de perl scripts jeg kører ?
Avatar billede triple-x Nybegynder
14. august 2005 - 18:10 #3
det jeg kan finde i access.log er

127.0.0.1 - - [14/Aug/2005:18:09:36 +0200] "GET / HTTP/1.1" 304 0
127.0.0.1 - - [14/Aug/2005:18:09:42 +0200] "POST /cgi-bin/index.pl HTTP/1.1" 500 723

Var det det du søgte?
Avatar billede triple-x Nybegynder
14. august 2005 - 18:12 #4
hmm nej det var vidst dette:

[Sun Aug 14 18:09:42 2005] [error] [client 127.0.0.1] (22)Invalid argument: couldn't spawn child process: C:/FoxServ/www/cgi-bin/index.pl, referer: http://localhost/
[Sun Aug 14 18:09:42 2005] [error] [client 127.0.0.1] File does not exist: C:/FoxServ/www/other.html, referer: http://localhost/

Men forstår bare ikke fejlen, c:/focserv/www/other.html er slet ikke en fil jeg arbejder med.
Avatar billede triple-x Nybegynder
14. august 2005 - 18:22 #5
fik den der other.html fejl væk, det er åbenbart en standard fejlmedelses fil der ligger i det der foxserv(som er en pakke med apache mysql og php) men jeg forstår stadig ikke : couldn't spawn child process
Avatar billede triple-x Nybegynder
14. august 2005 - 19:21 #6
ahh der var fejlen :) problemet lå simpelthen i at der er registringsdatabasen stadig lå noget data fra apache 2.0 som jeg startede med, men da jeg ikke kunne få den til at virke ordenlig tog jeg så en samlet pakke (foxserv) som åbenbart også havde perl indbygget, så begyndte den at blande 2 perl sammen og kører på noget apache 2, sikke noget rod. Men nu kører det, og jeg tror faktisk det virker.

Erik - mange tak for din tid, hvis du vil have point for din tid, så smid et svar :)
Avatar billede erikjacobsen Ekspert
14. august 2005 - 19:47 #7
Nej tak, da. Jeg samler slet ikke på point. Og du løste det jo også selv.
Avatar billede triple-x Nybegynder
14. august 2005 - 20:14 #8
så lad gå :) Fortsat god aften
Avatar billede triple-x Nybegynder
14. august 2005 - 20:14 #9
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester