Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python 2.5.2 + MySQLdb = помогите понять, где ошибка? / 15 сообщений из 15, страница 1 из 1
17.05.2012, 22:44:32
    #37799956
asphix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
Код: python
1.
2.
3.
sql = "insert into t_product_pictures(photoID, productID, filename, thumbnail, enlarged) values(%s, %s, '%s', '%s', '%s')" % (photoID, row[0],   file, file, file)
print sql
cursor.execute(sql)



вывод print sql верный:
Код: python
1.
insert into t_product_pictures(photoID, productID, filename, thumbnail, enlarged) values(4946, 11709, '0501035006802_01.jpg', '0501035006802_01.jpg', '0501035006802_01.jpg')


и в консоли phpmyadmin выполняется без ошибок, однако питон ругается:

Код: python
1.
_mysql_exceptions.OperationalError: (1054, "Unknown column 'al' in 'where clause'")



ничего не помогает, помогите разобраться?
...
Рейтинг: 0 / 0
17.05.2012, 23:19:24
    #37799977
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
asphix, Вы показываете текст запроса на вставку (insert), а ошибку приводите от запроса на выборку (select), удаление (delete) или обновление (update). Да и ругается это MySQL, а не питон.
...
Рейтинг: 0 / 0
17.05.2012, 23:32:02
    #37799996
asphix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
полный текст ошибки питона:

Код: python
1.
2.
3.
4.
5.
6.
Traceback (most recent call last):
  File "./file_uploader.py", line 20, in <module>
    cursor.execute(sql)
  File "build/bdist.openbsd-4.3-i386/egg/MySQLdb/cursors.py", line 174, in execute
  File "build/bdist.openbsd-4.3-i386/egg/MySQLdb/connections.py", line 36, in defaulterrorhandler
_mysql_exceptions.OperationalError: (1054, "Unknown column 'al' in 'where clause'")
...
Рейтинг: 0 / 0
18.05.2012, 11:47:58
    #37800573
asphix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
попробовал ещё один вариант:

Код: python
1.
2.
data = [photoID, row[0], file, file, file]
cursor.execute('insert into t_product_pictures values (?,?,?,?,?)', data)



структура таблицы:
Код: plsql
1.
2.
3.
4.
5.
photoID	        int(11)
productID	int(11)
filename	varchar(50)
thumbnail	varchar(50)
enlarged	varchar(50)



в результате получаю:
Код: python
1.
2.
3.
cursor.execute('insert into t_product_pictures values (?,?,?,?,?)', data)
  File "build/bdist.openbsd-4.3-i386/egg/MySQLdb/cursors.py", line 159, in execute
TypeError: not all arguments converted during string formatting
...
Рейтинг: 0 / 0
18.05.2012, 12:42:57
    #37800743
FishHook
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
Все работает
Код: python
1.
2.
>>> sql='insert into school_license (school_id, number) values (%d, "%s")' %(125,'1232323N')
>>> cursore.execute(sql)
...
Рейтинг: 0 / 0
18.05.2012, 13:05:47
    #37800821
asphix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
FishHook,

мистика какая-то..

выполняю:
Код: python
1.
2.
sql='insert into t_product_pictures (photoID, productID, filename, thumbnail, enlarged) values (%d, %d, "%s", "%s", "%s")' % (photoID, row[0], file, file, file)
cursor.execute(sql)



получаю:

Код: python
1.
2.
3.
File "build/bdist.openbsd-4.3-i386/egg/MySQLdb/cursors.py", line 174, in execute
  File "build/bdist.openbsd-4.3-i386/egg/MySQLdb/connections.py", line 36, in defaulterrorhandler
_mysql_exceptions.OperationalError: (1054, "Unknown column 'al' in 'where clause'")
...
Рейтинг: 0 / 0
18.05.2012, 13:10:24
    #37800837
FishHook
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
asphix,

покажи весь код вместе с импортом
ты верно юзаешь _mysql, а не MySQLdb??
...
Рейтинг: 0 / 0
18.05.2012, 13:34:53
    #37800901
asphix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
#!/usr/local/bin/python

import os
import shutil
import MySQLdb

src_dir = 'photo'
dst_dir = ('big', 'medium', 'small')
dst_path = '/var/www/kodak/shop/data'

db = MySQLdb.connect(host = "localhost", user = "_mysql", passwd = "derparol", db = "shop_new")
cursor = db.cursor()

cursor.execute("select max(photoID) + 1 from t_product_pictures")
photoID = cursor.fetchone()[0]


for file in os.listdir(src_dir):
    sql = "select productID from t_products where product_code=" + file[:file.find('_')]
    cursor.execute(sql)
    row = cursor.fetchone()
    if row == None:
        print "Product with barcode " + file[:file.find('_')] + " not found in store!"
    else:
        sql='insert into t_product_pictures (photoID, productID, filename, thumbnail, enlarged) values (%d, %d, "%s", "%s", "%s")' % (photoID, row[0], file, file, file)
        cursor.execute(sql)

        print "ProductID row[0] updated"
        for sub_path in dst_dir:
            pass
        photoID += 1
...
Рейтинг: 0 / 0
18.05.2012, 14:19:52
    #37801023
FishHook
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
asphix,

Да вроде PooH уже сказал как надо
...
Рейтинг: 0 / 0
18.05.2012, 14:36:27
    #37801077
asphix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
FishHookasphix,

Да вроде PooH уже сказал как надо

не совсем вас понял?
...
Рейтинг: 0 / 0
18.05.2012, 14:40:41
    #37801089
asphix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
если вы про python.su - то вариант Пуха тоже не сработал :(
...
Рейтинг: 0 / 0
18.05.2012, 14:50:08
    #37801108
FishHook
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
asphixесли вы про python.su - то вариант Пуха тоже не сработал :(
Пух намекает что там проценты не нужны
...
Рейтинг: 0 / 0
18.05.2012, 14:55:45
    #37801123
asphix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
FishHookasphixесли вы про python.su - то вариант Пуха тоже не сработал :(
Пух намекает что там проценты не нужны

а как параметры обозначить?
...
Рейтинг: 0 / 0
18.05.2012, 15:15:33
    #37801175
asphix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
если сделать способом выше:

Код: python
1.
2.
3.
data = [photoID, row[0], file, file, file]
print data
cursor.execute('insert into t_product_pictures values (?,?,?,?,?)', data)



то вывод содержимого data выдаст:
Код: python
1.
[4949L, 11709L, '0501035006802_01.jpg', '0501035006802_01.jpg', '0501035006802_01.jpg']



видимо ошибка в первых двух параметрах и есть
...
Рейтинг: 0 / 0
18.05.2012, 23:52:11
    #37801853
asphix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
в итоге сработал следующий вариант:

Код: python
1.
2.
sql = """insert into t_product_pictures values (%d, %d, %s, %s, %s)""" % (photoID, row[0], db.literal(file), db.literal(file), db.literal(file))
cursor.execute(sql)
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python 2.5.2 + MySQLdb = помогите понять, где ошибка? / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]