> 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

Reply via email to