> Hi!
>
> I have a proplem using my perl code to write some data into my mysql
> database. When running in consolemode anything works fine, but when
> executed by the wwwserver the scripts is processed without errors,
> except the data is not written into the database! Any idea how to fixit?
> Thanks in advance
> Sascha
>
> PS: the code
>
> sub generatepins {
>
> open (GETESTET, ">> /usr/local/httpd/sms/generated.pin");
> open (GENERIERT, "< ./pinanfrage.dat");
> ####db connect und write########
> my $dbh =
> DBI->connect("DBI:mysql:database=prepaid;host=localhost",
> "root", "sascha28",
> {'RaiseError' => 1});
> while(my $reader = <GENERIERT>)
> {
> chomp($reader);
> print GETESTET "$reader\n";
> $dbh->do("INSERT INTO pins (pin, msisdn, value, knd) VALUES
> ($reader, 'frei', $wert, '$kunde')");
> }
> # Disconnect from the database.
> $dbh->disconnect();
> close GENERIERT;
> close GETESTET;
>
> }
First try printing your query. I used to use 'do' but switched to the
longer method below. It gives you more control over tracing problems I
think.
Try something like this:
mysql_connect($DBhost,$DBuser,$DBpass) or die("Unable to connect to
database");
@mysql_select_db("$DBName") or die("Unable to select database $DBName");
$query=("INSERT INTO pins (pin, msisdn, value, knd)
VALUES(\"$reader\", \"frei\", \"$wert\", \"$kunde\")"); # quote
everything. singles would work too
$result=mysql_query($query);
if (!$result) die ("Query 953 failed."); # I use the line number for the
Query - easy to find
If that doesn't work, print out $query to see what it *really* contains.
If your column values are going to be variables, try something like:
$last=$dbh->quote("Beck");
$first=$dbh->quote("Jeff");
$query=qq{insert members (last_name,first_name) values ($last,$first);
$result=mysql_query($query);
Another trick I use for debugging is to put the following at the top of
each script:
BEGIN
{
open (STDERR,">>$0-err.txt");
print STDERR "\n",scalar localtime,"\n";
}
It merely puts the error messages into a file in the directory the
script is running in. That is a lot easier to find than going through
server logs. Make sure you comment it out once the script is running
well.
--
Amer Neely [EMAIL PROTECTED]
Softouch Information Services: www.softouch.on.ca/
Perl / PHP / CGI programming for shopping carts, data entry forms.
"We make web sites work!"
---------------------------------------------------------------------
Before posting, please check:
http://www.mysql.com/manual.php (the manual)
http://lists.mysql.com/ (the list archive)
To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <mysql-unsubscribe-##L=##[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php