Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??
Jeff, thanks for your help on this, you'd never guess I am a Noob eh?! Okay, I am almost there, I have read access working and am attempting to add a record/row to the database file and get the following error:
CREATE NEW USER start of the data about to open the DB SQL ERROR: Bad table or column name '\?QI0?' has chars not alphanumeri +c or underscore! DBD::AnyData::db prepare failed: SQL ERROR: Bad tabl +e or column name '\?QI0?' has chars not alphanumeric or underscore! result = about to insert the new record
Please ignore the comments they are just print statements I have been using to tell me what is going on. The code I have written is below:
#!/usr/bin/perl -w # --------------------------------------------- # create-user.cgi - Create by Lance Wicks # e-judo.sourceforge.net # This is free open source software! Released under GPL # # Description: # This script adds a new user to the users database # # History: # ======== # 20 December 2003, Lance Wicks - Created initial file. # use strict; # force strict programming controls use CGI qw(:standard); # use the CGI.PM module use lib './MyLib'; # use the modules in MyLib, this is the DBD::Anydat +a used for database activities use DBI; # This calls the DBI module, which along with the line above +allows us to do database activities print header(), start_html("e-Judo Test Area"), h1("CREATE NEW USER"); + # This line uses CGI.PM to to create the webpage if (param()){ # If there is a parameter(or parameters) then validate, + else show the login screen. # the following lines are excecuted if paramaters HAVE been entered print p("start of the data"); my $ID = param("ID"); # the next few lines alocate the in +fo from the completed form to variables. my $first_name = param("first_name"); my $surname = param("surname"); my $date_of_birth = param("date_of_borth"); my $email = param("email"); my $password = param("ejudopass"); # now give values to the other user data field variables my $active = "NO"; # the user is not immediately active +, we will email them first. my $last_login = "now"; # set the last login time to now my $create_date = "now"; # set the date we created this u +ser to now as well my $earnings = 0; # They have not earned any thing yet so + set it to Zero my $cash = 50; # This is their cash on hand, lets give th +em 50 credits by default my $judoka_limit = 1; # They can create 1 Judoka my $sensei_limit = 0; # They can NOT create a sensei (YET +) my $dojo_limit = 0; # They can not create a Dojo my $team_limit = 0; # They can not create a team my $rank = "Novice"; # They are a novice user to start wi +th # Add in some data validation here!!!! # Next connect to the database and check if they exist al +ready. print p("about to open the DB"); my $dbh = DBI->connect('dbi:AnyData(RaiseError=>1):'); # +tell DBI we want to use the Anydata module in ./MyLibs $dbh->func( 'users', 'CSV', 'data/users.csv', 'ad_catalog +'); # Connect to the users.csv data file my $sth = $dbh->prepare("SELECT id FROM users WHERE id = +'$ID'"); # select the ID field from the database for the ID enetered +by the user $sth->execute(); # excecute the select command above my @result = $sth->fetchrow_array; # this line takes the +results of the select and puts it in the array called RESULTS $dbh->disconnect(); # we are done with the datbase for no +w, so disconnect from it (MAY NOT BE NECESSARY) print p("result = @result"); if (@result) { #if the result array is in existence (i +e we found the username) then... print p("Sorry this ID is in use a +lready"); exit; } else { print p("about to insert the new record"); # if the user does not exist then add them! # so connect to the database and insert a reco +rd my $dbh = DBI->connect('dbi:AnyData(RaiseError +=>1):'); # tell DBI we want to use the Anydata module in ./MyLibs $dbh->func( 'users', 'CSV', 'data/users.csv', +'ad_catalog'); # Connect to the users.csv data file my $sth = $dbh->prepare('INSERT INTO users V +ALUES ( \" $ID, $first_name, $surname, $date_of_birth, $email, $password, $active, $last_login, $create_date, $earnings, $cash, $judoka_limit, $sensei_limit, $dojo_limit, $team_limit, $rank \" ) '); $sth->execute(); # excecute the command abov +e # $dbh->commit(); $dbh->disconnect(); print p("Inserted Record"); } } else { # The following lines are excecuted only if no parameters have been en +tered. (Ie when you first arrive) print hr, start_form; # create a form using CGI.PM print p("User ID: ", textfield("ID"), " - This is the ID you w +ill use to login to the system"); # what username do they want +. print p("First Name: ", textfield("first_name"), " - This is y +our REAL name"); # what is their real name print p("Surname: ", textfield("surname"), " - This is your RE +AL last name"); # what is their real name print p("Date of Birth: ", textfield("date_of_birth"), " - (DD +/MM/YYYY) This is your date of birth, used if you ever need to prove +who you are"); print p("Email address: ", textfield("email"), " - the email a +ddress you would like to use."); print p("Password: ", password_field("ejudopass"), " - Choo +se a password to use on the system"); print end_form, hr; +# end the form } print end_html; # this closes the web page properly
Again thanks for the help from you and everyone so far, I am slowly getting brain into gear and starting to understand things a little.
Kia Kaha, Kia Toa, Kia Manawanui!
Be Strong, Be Brave, Be perservering!

In reply to Re: Re: Re: Re: Re: Re: DBD::CSV - how to install? (FTP only) by lwicks
in thread DBD::CSV - how to install? (FTP only) by lwicks

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others imbibing at the Monastery: (13)
    As of 2015-07-06 19:10 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









      Results (81 votes), past polls