Sponsored Content
Top Forums Programming Problems using Perl DBI to edit database entries - basic stuff Post 302379991 by SteveSwitzer on Sunday 13th of December 2009 10:04:56 PM
Old 12-13-2009
Dave,
What you have is mostly a mis-ordering of the lines. try this instead:

Code:
#SQL CODE

my $dbh = DBI->connect("DBI:mysql:daveDB","dave","pass412");
my $sql = "INSERT INTO user_accounts (username, email, password)
 VALUES ($NewUserName, $NewEmail, $CryptPassword)";
my $sth = $dbh->prepare($sql);
my $res = $sth->execute();
$sth->finish();
$dbh->disconnect();

print end_html;

Once $dbh is defined, a "prepare" call is needed to get the SQL statement into the object.

As a side note, for best coding practice, you should have a " -w" after the perl line at the top (like this: "#!/usr/local/bin/perl -w") OR "use warnings;" to be sure you're told about things that could be mistakes. It's also a very good idea to "use strict;", which forces you to declare variables with "my" before you can use them. This also helps to make in obvious what variable scope you're expecting and can really reduce the amount of hair you pull out during a project. Smilie

HTH!

Steve

Quote:
Originally Posted by Dave247
Here is my Perl code with the DBI code in there to access the database:
When I run this, I get this error message: "Can't locate object method "disconnect" via package "INSERT INTO user_accounts (username, email, password)"Dave247
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Problems Downloading and Installing Stuff

HI to everyone, I have been for a very long time in my life a GUI user, and now that i have to use a Solaris 5 terminal, i am not sure how to do some things: Downloading stuff from the internet: How do i do that? in a GUI you just click on the link and start downloading automatic, but i have... (4 Replies)
Discussion started by: sx3v1l_1n51de
4 Replies

2. Shell Programming and Scripting

PERL DBI module install

We ran into an issue trying to install DBI and DB2 modules for perl for AIX from the link http://www-306.ibm.com/software/data/db2/perl/ We tried to install the DBI module using bash# perl -MCPAN -e 'install DBI' command. However we ended up with the following error. Stop. ... (3 Replies)
Discussion started by: jerardfjay
3 Replies

3. UNIX for Dummies Questions & Answers

SSH Connection - Problems viewing stuff

Hey, I connected with Cygwin and this command: "ssh -Y USER@web.com" Then trying to open a program, but this error appeared: "Cannot open X display: DISPLAY variable unset" what do I have to do? Thanks. Alex (3 Replies)
Discussion started by: alf123
3 Replies

4. Programming

perl dbi to oracle getting disconnect_all for oracle dbi help

hi i am trying to connect to an oracle database using dbi and i get this :: Driver has not implemented the disconnect_all method. at /opt/perl/lib/site_perl/5.8.0/sun4-solaris/DBI.pm line 575 END failed--call queue aborted. for all i know, the script was working earlier, but has... (1 Reply)
Discussion started by: poggendroff
1 Replies

5. Shell Programming and Scripting

Installing Perl DBI and DBD

Hi, i have some queries on installing the Perl DBI and the DBD Oracle. I know that i have to install the DBI first. I have the source files in a folder in my home directory.The commands to install arecd /home/DBI Perl Makefile.PL make make installI would like to know, after executing these... (4 Replies)
Discussion started by: new2ss
4 Replies

6. Shell Programming and Scripting

DBI - Change database

Hello ! I am working on a small Perl script that should connect to the MySQL server, will select all the databases one by one and do some queryes on each. I started working on it but I just saw that on the DBI manual page there's no method for changing the working database. Am I missing... (2 Replies)
Discussion started by: Sergiu-IT
2 Replies

7. Shell Programming and Scripting

connect to MySQL from Perl using DBI

Hi, I want to connect perl with the mysql to select and so on but the connection don't work code #!/usr/bin/perl BEGIN { # PERL MODULES WE WILL BE USING use DBI; $dbh = DBI->connect('DBI:mysql:C:\Program Files\MySQL\MySQL Server 5.0\data\db1','','pass') or die $DBI::errstr;} #... (1 Reply)
Discussion started by: eng_shimaa
1 Replies

8. Shell Programming and Scripting

perl: help with DBI

Hi there, I have a bit of code similar to below (which ive actually got from perldoc, but mine is similar enough) $sth = $dbh->prepare(q{ SELECT region, sales FROM sales_by_region }); $sth->execute; my ($region, $sales); # Bind Perl variables to columns: $rv =... (4 Replies)
Discussion started by: hcclnoodles
4 Replies

9. Shell Programming and Scripting

GNU-Screen Stuff problems

OPTIONS="java -Xms1024M -Xmx1024M -jar craftbukkit.jar" PROCESS=server01 screen -dmS $PROCESS $OPTIONS nogui # Starting the application screen -x $PROCESS -X stuff `printf "stop\r"` # Closing the application screen -x $PROCESS # Attaching to the... (3 Replies)
Discussion started by: Zanax
3 Replies

10. Shell Programming and Scripting

Perl DBI error

Hi All, I installed DBI module in a non INC location and using it in my script via "use lib". But it throw the below error at the "use DBI" step. Please help Usage: DBI::_install_method(dbi_class, meth_name, file, attribs=Nullsv) at /xx/xxx/xxxxx/xxxxx/oracle/lib/DBI.pm/oracle/lib/DBI.pm line... (2 Replies)
Discussion started by: prasperl
2 Replies
Data::Phrasebook::SQL(3pm)				User Contributed Perl Documentation				Data::Phrasebook::SQL(3pm)

NAME
Data::Phrasebook::SQL - The SQL/DBI Phrasebook Model. SYNOPSIS
use Data::Phrasebook; use DBI; my $dbh = DBI->connect(...); my $book = Data::Phrasebook->new( class => 'SQL', dbh => $dbh, file => 'queries.txt', ); my $q = $book->query( 'find_author', { author => "Lance Parkin" }); while ( my $row = $q->fetchrow_hashref ) { print "He wrote $row->{title} "; } $q->finish; queries.txt: find_author=select title,author from books where author = :author DESCRIPTION
In order to make use of features like placeholders in DBI in conjunction with phrasebooks, it's helpful to have a phrasebook be somewhat more aware of how DBI operates. Thus, you get "Data::Phrasebook::SQL". "Data::Phrasebook::SQL" has knowledge of how DBI works and creates and executes your queries appropriately. CONSTRUCTOR
new Not to be accessed directly, but via the parent Data::Phrasebook, by specifying the class as SQL. Additional arguments to those described in Data::Phrasebook::Generic are: o "dbh" - a DBI database handle. METHODS
dbh Set, or get, the current DBI handle. query Constructs a Data::Phrasebook::SQL::Query object from a template. Takes at least one argument, this being the identifier for the query. The identifier is used as a key into the phrasebook "file". A second argument can be provided, which is an optional hashref of key to value mappings. If phrasebook has a YAML source looking much like the following: --- find_author: sql: select class,title,author from books where author = :author You could write: my $q = $book->query( 'find_author' ); OR my $q = $book->query( 'find_author', { author => 'Lance Parkin' } ); OR my $author = 'Lance Parkin'; my $q = $book->query( 'find_author', { author => $author, } ); # sql = select class,title,author from books where author = ? # args = 'Lance Parkin' In the above examples, the parameters are bound to the SQL using the bind parameters functionality. This is more efficient in most cases where the same SQL is reused with different values for fields. However, not all SQL statements just need to bind parameters, some may require the ability to replace parameters, such as a field list. --- find_author: sql: select :fields from books where author = :author my $q = $book->query( 'find_author', replace => { fields => 'class,title,author' }, bind => { author => 'Lance Parkin' } ); # sql = select class,title,author from books where author = ? # args = 'Lance Parkin' In all instances, if the SQL template requested does not exist or has no definition, then an error will be thrown. Consult Data::Phrasebook::SQL::Query for what you can then do with your returned object. For reference: the bind hashref argument, if it is given, is given to the query object's "order_args" and then "args" methods. SEE ALSO
Data::Phrasebook, Data::Phrasebook::Generic, Data::Phrasebook::SQL::Query. SUPPORT
Please see the README file. AUTHOR
Original author: Iain Campbell Truskett (16.07.1979 - 29.12.2003) Maintainer: Barbie <barbie@cpan.org> since January 2004. for Miss Barbell Productions <http://www.missbarbell.co.uk>. COPYRIGHT AND LICENSE
Copyright (C) 2003 Iain Truskett. Copyright (C) 2004-2010 Barbie for Miss Barbell Productions. This module is free software; you can redistribute it and/or modify it under the Artistic Licence v2. perl v5.10.1 2010-08-31 Data::Phrasebook::SQL(3pm)
All times are GMT -4. The time now is 02:50 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy