HI,
I'm having trouble writing to a MySql db using python and the MySQLdb
module. Here is the code:
import MySQLdb
base = MySQLdb.connect(host="localhost", user="blah", passwd="blah",
db="test_py")
cursor = base.cursor()
cursor.execute("INSERT INTO table (field) VALUES (int)")
this does not work but the interesting thing is, there is an
AUTO_INCREMENT
field. Now say i had a couple of entries in there already:
auto table
1 | 90
2 | 32
and then i run my py script 3 times, the data is not entered but if i
add
another entry from mysql the auto increment field will have counted the
python entries:
auto table
1 | 90
2 | 32
6 | 47
please tell me what i am doing wrong. thanks. 13 1931
In <11*********************@i3g2000cwc.googlegroups.c om>, miker2 wrote:
import MySQLdb
base = MySQLdb.connect(host="localhost", user="blah", passwd="blah",
db="test_py")
cursor = base.cursor()
cursor.execute("INSERT INTO table (field) VALUES (int)")
this does not work but the interesting thing is, there is an
AUTO_INCREMENT
field. Now say i had a couple of entries in there already:
auto table
1 | 90
2 | 32
and then i run my py script 3 times, the data is not entered but if i
add
another entry from mysql the auto increment field will have counted the
python entries:
auto table
1 | 90
2 | 32
6 | 47
please tell me what i am doing wrong. thanks.
Where's the problem? Do you mind that the third entry has a 6 as unique
`auto` value? Doesn't `AUTO_INCREMENT` just guarantee unique values?
Ciao,
Marc 'BlackJack' Rintsch
Marc 'BlackJack' Rintsch wrote:
In <11*********************@i3g2000cwc.googlegroups.c om>, miker2 wrote:
import MySQLdb
base = MySQLdb.connect(host="localhost", user="blah", passwd="blah",
db="test_py")
cursor = base.cursor()
cursor.execute("INSERT INTO table (field) VALUES (int)")
this does not work but the interesting thing is, there is an
AUTO_INCREMENT
field. Now say i had a couple of entries in there already:
auto table
1 | 90
2 | 32
and then i run my py script 3 times, the data is not entered but if i
add
another entry from mysql the auto increment field will have counted the
python entries:
auto table
1 | 90
2 | 32
6 | 47
please tell me what i am doing wrong. thanks.
Where's the problem? Do you mind that the third entry has a 6 as unique
`auto` value? Doesn't `AUTO_INCREMENT` just guarantee unique values?
Ciao,
Marc 'BlackJack' Rintsch
the problem is that the entry from python: cursor.execute("INSERT INTO
table (field) VALUES (3)") is not there.
the auto increment counts the entries 1,2,3,4,5, ect. the 3,4,5 in
the example above is where i've run the py script and as you can see
there are not there. the 6 is an entry from mysql.
so basically the data from python is not being entered but the auto
increment is being counted. thanks.
sorry about the dodgie description. mi****@optusnet.com.au wrote:
HI,
I'm having trouble writing to a MySql db using python and the MySQLdb
module. Here is the code:
import MySQLdb
base = MySQLdb.connect(host="localhost", user="blah", passwd="blah",
db="test_py")
cursor = base.cursor()
cursor.execute("INSERT INTO table (field) VALUES (int)")
I've never used MySQL but they're all much the same --
"table" is a reserved word. What is "int" supposed to be? That's not
valid SQL AFAIK. Is that exactly what you typed? Or are you coyly
obfuscating?
Try this:
cursor.execute("INSERT INTO tablename (fieldname) VALUES (42)")
or better,
somevar = 42
cursor.execute("INSERT INTO tablename (fieldname) VALUES (?)",
(somevar,))
even better, read the docs and look at the examples :-)
>
this does not work
.... and the error message was ... what? If it's not a state secret, how
about divulging it?
but the interesting thing is, there is an
AUTO_INCREMENT
field. Now say i had a couple of entries in there already:
auto table
1 | 90
2 | 32
and then i run my py script 3 times, the data is not entered but if i
add
another entry from mysql the auto increment field will have counted the
python entries:
auto table
1 | 90
2 | 32
6 | 47
Evidently it's committed the auto increment before it decides that it
doesn't like your SQL or whatever. Read the warranty card that came
with the autoincrementer gizmoid; you won't find "continuous" or "no
gaps" mentioned anywhere.
please tell me what i am doing wrong.
Inter alia, not giving enough clear unambiguous info about what your
problem really is.
Cheers,
John
John Machin wrote:
mi****@optusnet.com.au wrote:
HI,
I'm having trouble writing to a MySql db using python and the MySQLdb
module. Here is the code:
import MySQLdb
base = MySQLdb.connect(host="localhost", user="blah", passwd="blah",
db="test_py")
cursor = base.cursor()
cursor.execute("INSERT INTO table (field) VALUES (int)")
I've never used MySQL but they're all much the same --
"table" is a reserved word. What is "int" supposed to be? That's not
valid SQL AFAIK. Is that exactly what you typed? Or are you coyly
obfuscating?
Try this:
cursor.execute("INSERT INTO tablename (fieldname) VALUES (42)")
or better,
somevar = 42
cursor.execute("INSERT INTO tablename (fieldname) VALUES (?)",
(somevar,))
even better, read the docs and look at the examples :-)
this does not work
... and the error message was ... what? If it's not a state secret, how
about divulging it?
but the interesting thing is, there is an
AUTO_INCREMENT
field. Now say i had a couple of entries in there already:
auto table
1 | 90
2 | 32
and then i run my py script 3 times, the data is not entered but if i
add
another entry from mysql the auto increment field will have counted the
python entries:
auto table
1 | 90
2 | 32
6 | 47
Evidently it's committed the auto increment before it decides that it
doesn't like your SQL or whatever. Read the warranty card that came
with the autoincrementer gizmoid; you won't find "continuous" or "no
gaps" mentioned anywhere.
please tell me what i am doing wrong.
Inter alia, not giving enough clear unambiguous info about what your
problem really is.
Cheers,
John
sorry guys...
forget about the auto incrementer for a second.
the entry is not being recorded. that is my problem. the script does
not work. thanks.
mik...@optusnet.com.au wrote:
John Machin wrote:
mi****@optusnet.com.au wrote:
HI,
>
I'm having trouble writing to a MySql db using python and the MySQLdb
module. Here is the code:
>
import MySQLdb
base = MySQLdb.connect(host="localhost", user="blah", passwd="blah",
db="test_py")
cursor = base.cursor()
cursor.execute("INSERT INTO table (field) VALUES (int)")
I've never used MySQL but they're all much the same --
"table" is a reserved word. What is "int" supposed to be? That's not
valid SQL AFAIK. Is that exactly what you typed? Or are you coyly
obfuscating?
Try this:
cursor.execute("INSERT INTO tablename (fieldname) VALUES (42)")
or better,
somevar = 42
cursor.execute("INSERT INTO tablename (fieldname) VALUES (?)",
(somevar,))
even better, read the docs and look at the examples :-)
>
this does not work
... and the error message was ... what? If it's not a state secret, how
about divulging it?
but the interesting thing is, there is an
AUTO_INCREMENT
field. Now say i had a couple of entries in there already:
auto table
1 | 90
2 | 32
>
and then i run my py script 3 times, the data is not entered but if i
add
another entry from mysql the auto increment field will have counted the
>
python entries:
auto table
1 | 90
2 | 32
6 | 47
Evidently it's committed the auto increment before it decides that it
doesn't like your SQL or whatever. Read the warranty card that came
with the autoincrementer gizmoid; you won't find "continuous" or "no
gaps" mentioned anywhere.
please tell me what i am doing wrong.
Inter alia, not giving enough clear unambiguous info about what your
problem really is.
Cheers,
John
sorry guys...
forget about the auto incrementer for a second.
the entry is not being recorded. that is my problem. the script does
not work. thanks.
OK we've forgotten about the auto incrementer.
Now tell us what "does not work" means.
Show us an actual suitably-cut down script that "does not work".
If you get an error message, tell us what the error message was.
If you didn't get an error message, bloody well tell us that you
didn't.
BTW, if the script doesn't contain
base.commit()
somewhere, take yourself out to the back lane and give yourself a good
thumping :-)
Then come back in and read the docs about transactions and commit and
autocommit etc.
HTH,
John mi****@optusnet.com.au wrote:
sorry guys...
forget about the auto incrementer for a second.
the entry is not being recorded. that is my problem. the script does
not work. thanks.
after Dijkstra: "the use of mySql cripples the mind; its teaching
should, therefore, be regarded as a criminal offence. "
thus said, which mysql engine are you using for your DB? is it
transactional, should you commit?
John Machin schrieb:
>
BTW, if the script doesn't contain
base.commit()
somewhere, take yourself out to the back lane and give yourself a good
thumping :-)
That's not really fair, because transactions were added to MySQL only a
short time ago (at least to the default table type). There simply hasn't
yet been time for every experienced MySQL user to get hit by the need to
commit things.
--
Dr. Sibylle Koczian
Universitaetsbibliothek, Abt. Naturwiss.
D-86135 Augsburg
e-mail : Si*************@Bibliothek.Uni-Augsburg.DE mi****@optusnet.com.au a écrit :
import MySQLdb
base = MySQLdb.connect(host="localhost", user="blah", passwd="blah",
db="test_py")
cursor = base.cursor()
cursor.execute("INSERT INTO table (field) VALUES (int)")
this does not work but the interesting thing is, there is an
AUTO_INCREMENT
field. Now say i had a couple of entries in there already:
auto table
1 | 90
2 | 32
and then i run my py script 3 times, the data is not entered but if i
add
another entry from mysql the auto increment field will have counted the
python entries:
auto table
1 | 90
2 | 32
6 | 47
please tell me what i am doing wrong. thanks.
The dbapi2 specification says:
"if the database supports an auto-commit feature, this must be initially
off"
So you have to do a commit ( base.commit() ) or to enable auto-commit at
the beginning ( base.autocommit( True ) )
Sibylle Koczian wrote:
John Machin schrieb:
BTW, if the script doesn't contain
base.commit()
somewhere, take yourself out to the back lane and give yourself a good
thumping :-)
That's not really fair, because transactions were added to MySQL only a
short time ago (at least to the default table type). There simply hasn't
yet been time for every experienced MySQL user to get hit by the need to
commit things.
As I said earlier, I don't use MySQL. I wasn't aware it didn't have
transactions -- what did people use it for, then? So is the upshot is
that he should thump himself for using a DBMS w/o transactions,
perhaps?
Cheers,
John
John Machin wrote:
Sibylle Koczian wrote:
John Machin schrieb:
>
base.commit()
[...]
That's not really fair, because transactions were added to MySQL only a
short time ago (at least to the default table type). There simply hasn't
yet been time for every experienced MySQL user to get hit by the need to
commit things.
This is mentioned in the MySQLdb FAQ: http://sourceforge.net/docman/displa...group_id=22307
The default behaviour has been changed to match the DB-API standard,
which probably matches the normal behaviour on most mainstream
relational database systems.
As I said earlier, I don't use MySQL. I wasn't aware it didn't have
transactions -- what did people use it for, then? So is the upshot is
that he should thump himself for using a DBMS w/o transactions,
perhaps?
Some awareness of common practice would certainly be beneficial.
Attempting to insert data into PostgreSQL, Oracle, sqlite and so on
would produce similar results to those described. The principal
difference is that with MySQL (and presumably with things like
Microsoft Access' storage engine that no-one takes seriously anyway),
everyone has been able to get away with ignoring transactions and
considering such behaviour as normal (or not even considering that
anyone really uses anything which does anything else), and this
obviously affects software governed by such assumptions.
I suppose it's unfortunate for anyone who was using MySQLdb prior to
release 1.2.0, especially if the software didn't give any obvious
run-time warnings (not that I can say whether it did or not), but the
MySQL-centric culture of ignoring/ridiculing stuff they don't support
(and then eventually supporting it, in this case) is probably most to
blame if we have to point the finger.
Paul
Paul Boddie wrote:
John Machin wrote:
Sibylle Koczian wrote:
John Machin schrieb:
base.commit()
[...]
That's not really fair, because transactions were added to MySQL only a
short time ago (at least to the default table type). There simply hasn't
yet been time for every experienced MySQL user to get hit by the need to
commit things.
This is mentioned in the MySQLdb FAQ:
http://sourceforge.net/docman/displa...group_id=22307
The default behaviour has been changed to match the DB-API standard,
which probably matches the normal behaviour on most mainstream
relational database systems.
As I said earlier, I don't use MySQL. I wasn't aware it didn't have
transactions -- what did people use it for, then? So is the upshot is
that he should thump himself for using a DBMS w/o transactions,
perhaps?
Some awareness of common practice would certainly be beneficial.
Attempting to insert data into PostgreSQL, Oracle, sqlite and so on
would produce similar results to those described. The principal
difference is that with MySQL (and presumably with things like
Microsoft Access' storage engine that no-one takes seriously anyway),
everyone has been able to get away with ignoring transactions and
considering such behaviour as normal (or not even considering that
anyone really uses anything which does anything else), and this
obviously affects software governed by such assumptions.
I suppose it's unfortunate for anyone who was using MySQLdb prior to
release 1.2.0, especially if the software didn't give any obvious
run-time warnings (not that I can say whether it did or not), but the
MySQL-centric culture of ignoring/ridiculing stuff they don't support
(and then eventually supporting it, in this case) is probably most to
blame if we have to point the finger.
Paul
Thanks for the thumping, will try harder next time.
_________________________________________________
Thanks for commit comment i think that whats i need.
_________________________________________________
I think you should support people rather than pay them out despite
thier Ignorance. mi****@optusnet.com.au wrote:
Paul Boddie wrote:
the MySQL-centric culture of ignoring/ridiculing stuff they don't support
(and then eventually supporting it, in this case) is probably most to
blame if we have to point the finger.
[...]
I think you should support people rather than pay them out despite
thier Ignorance.
For the record, I was mostly referring to MySQL AB in my finger
pointing above - there's a long history of them encouraging fashionably
non-standard thinking, ostensibly because of some radical insight into
why everyone else is supposedly doing the wrong thing, but in reality
due to some shortcomings in their product which they're not willing to
admit (at least until they've put them right).
Anyway, I think most of us are happy to help people out who are
suddenly discovering new depths to technologies they thought they
already knew.
Paul mi****@optusnet.com.au wrote:
>
Thanks for the thumping, will try harder next time.
_________________________________________________
Thanks for commit comment i think that whats i need.
_________________________________________________
I think you should support people rather than pay them out despite
thier Ignorance.
There are (at least) 3 possible responses to people who have not read
the docs and/or who say their code "doesn't work" without providing
any/enough details:
(1) No response: Ignore them, and hope evolution works -- that ain't
support
(2) Spoon-feed them -- that's support of the "life-support machine"
type
(3) Attempt to tell them how to lift their game ... This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: francescomoi |
last post by:
Hi.
I'm trying to build 'MySQL-python-1.2.0' on my Linux FC2:
----------------------------------
# export PATH=$PATH:/usr/local/mysql/bin/
# export mysqlclient=mysqlclient_r
# python setup.py...
|
by: mikey |
last post by:
Hi all,
I'm having great problems trying to install the latest MySQl RPM
package onto my Red Hat Linux OS.
There is already MySQL v 3.0 pre-installed with the RH Linux
distribution disk but I...
|
by: Yun Guan |
last post by:
Hello mysql gurus,
I am trying to run perl on mysql database on Red Hat box. I want to install
DBI and DBD:mysql using CPAN:
perl -MCPAN -e shell
cpan>install DBI
The above succeeded, but...
|
by: Mike Chirico |
last post by:
Interesting Things to Know about MySQL
Mike Chirico (mchirico@users.sourceforge.net)
Copyright (GPU Free Documentation License) 2004
Last Updated: Mon Jun 7 10:37:28 EDT 2004
The latest...
|
by: Saqib Ali |
last post by:
I installed mySQL and have it running.... but I think I made a
mistake somewhere along the line...... I believe I did follow the
instructions that were provided with the distribution at:...
|
by: Alex Hunsley |
last post by:
I am trying to install the DBD::mysql perl module. However, it claims I
need mysql.h:
cpan> install DBD::mysql
CPAN: Storable loaded ok
Going to read /home/alex/.cpan/Metadata
Database was...
|
by: ./Rob & |
last post by:
Hi gang:
I'm experiencing a problem with MySQL -- I updated MySQL from version 4.1.0
to 4.1.10 and now when I login as root it doesn't show all the databases I
should have access to, nor it...
|
by: trihanhcie |
last post by:
I m currently working on a Unix server with a fedora 3 as an os
My current version of mysql is 3.23.58. I'd like to upgrade the version
to 5.0.18.
After downloading from MYSQL.COM the package on...
|
by: manish deshpande |
last post by:
Hi,
When i'm installing MySQL-server-standard-5.0.24a-0.rhel3.i386.rpm by the following command:
rpm -i MySQL-server-standard-5.0.24a-0.rhel3.i386.rpm the following error is being shown:
...
|
by: menzies |
last post by:
Hi, I"m new to this forum, but I have been trying all day to install DBD::mysql onto my Intel MacBook. I've read lots of forums pages and none have gotten me to a successful 'make test' or a...
|
by: emmanuelkatto |
last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud.
Please let me know.
Thanks!
Emmanuel
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new...
| |