powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
15 сообщений из 15, страница 1 из 1
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
    #37799956
asphix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
    #37799977
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asphix, Вы показываете текст запроса на вставку (insert), а ошибку приводите от запроса на выборку (select), удаление (delete) или обновление (update). Да и ругается это MySQL, а не питон.
...
Рейтинг: 0 / 0
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
    #37799996
asphix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
полный текст ошибки питона:

Код: 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
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
    #37800573
asphix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробовал ещё один вариант:

Код: 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
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
    #37800743
Фотография FishHook
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все работает
Код: python
1.
2.
>>> sql='insert into school_license (school_id, number) values (%d, "%s")' %(125,'1232323N')
>>> cursore.execute(sql)
...
Рейтинг: 0 / 0
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
    #37800821
asphix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
    #37800837
Фотография FishHook
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asphix,

покажи весь код вместе с импортом
ты верно юзаешь _mysql, а не MySQLdb??
...
Рейтинг: 0 / 0
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
    #37800901
asphix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
    #37801023
Фотография FishHook
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asphix,

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

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

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

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

Код: 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
Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
    #37801853
asphix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в итоге сработал следующий вариант:

Код: 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
15 сообщений из 15, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python 2.5.2 + MySQLdb = помогите понять, где ошибка?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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