Əsas səhifə > PHP/Python > Using Connector/Python for MySQL

Using Connector/Python for MySQL

Python və MySQL üçün bir çox həllər mövcuddur lakin, rəsmi vasitə Connector/Python-dur.
Mənə əsasən də ERROR-arın native MySQL ERROR-lar olması xoşuma gəldi. Yəni programda baş verən error sanki terminalda işləyərkən baş verən error-dur. code number-lər da eynidir. Bilmirəm digər vasitələrdə bu var ya yox.
İLk öncə connector-u install edək. Məndə Ubuntu 12.04-dür və Python 2.7.3 və 3.3 install olunub.
Mənə lazımdır ki connector məhz Python 3.3-ə install olunsun.
Ardıcıllıqla:
1. Connector-u download edirik
2. daha sonra download direktorisində:

gunzip mysql-connector-python-1.0.9.tar.gz
tar mysql-connector-python-1.0.9.tar
cd mysql-connector-python-1.0.9
/opt/python3.3/bin/python3 setup.py install

İndi isə Python-la MySQL-ə qoşulaq.

import mysql.connector

try:
    conn=mysql.connector.connect(user='root', password='12345',host='localhost',database='python_test')

except mysql.connector.Error as err:
    if err.errno==mysql.connector.errorcode.ER_ACCESS_DENIED_ERROR:
        print(err)
        print("Something is wrong your username or password")
    elif err.errno==mysql.connector.errorcode.ER_BAD_DB_ERROR:
        print(err)
        print("Database does not exists")
    else:
        print(err)
else:
    conn.close()

Yuxarıda dediyim kimi ERROR-ların oxşarlığına baxaq.
root əvəzinə rot yazaq.
Python-dan:

1045 (28000): Access denied for user 'rot'@'localhost' (using password: YES)

MySQL terminaldan:

root@sh-ubuntu:~# mysql -u rot -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'rot'@'localhost' (using password: YES)

Davam edək. database adında python_test yerinə pyton_test yazaq:
Python-dan:

1049 (42000): Unknown database 'pyton_test'

MySQL-dən:

mysql> use pyton_test;
ERROR 1049 (42000): Unknown database 'pyton_test'

MySQL native error-lardan daha gözəl nə ola bilər?😉
Indi isə sadə insert və select edək.

import mysql.connector

try:
    conn=mysql.connector.connect(user='root', password='12345',host='localhost',database='python_test')
    
    cursor=conn.cursor()
    add_id=("insert into test_id values (%s),(%s),(%s),(%s)")
    
    ids=(1,2,3,4)
    cursor.execute(add_id,ids)
    conn.commit()
    
    
    query=("select id from test_id")
    cursor.execute(query)
    for ids in cursor:
        print(ids)
    
    cursor.close()

except mysql.connector.Error as err:
    if err.errno==mysql.connector.errorcode.ER_ACCESS_DENIED_ERROR:
        print(err)
        print("Something is wrong your username or password")
    elif err.errno==mysql.connector.errorcode.ER_BAD_DB_ERROR:
        print(err)
        print("Database does not exists")
    elif err.errno==mysql.connector.errorcode.ER_DUP_ENTRY:
        print(err)
        print("Check your values")
    else:
        print(err)
else:
    conn.close()

Bir daha run etsək çox tanış bir ERROR görəcik🙂 Bu da MySQL ERROR-un eynisidir.

1062 (23000): Duplicate entry '1' for key 'PRIMARY'

ERROR handling-də adlar da çox oxunaqlıdır. ER_ACCESS_DENIED_ERROR , ER_BAD_DB_ERROR, ER_DUP_ENTRY
Təşəkkürlər!

  1. Hələlik heç bir şərh yoxdur
  1. No trackbacks yet.

Bir cavab yazın

Sistemə daxil olmaq üçün məlumatlarınızı daxil edin və ya ikonlardan birinə tıklayın:

WordPress.com Loqosu

WordPress.com hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Twitter rəsmi

Twitter hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Facebook fotosu

Facebook hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Google+ foto

Google+ hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

%s qoşulma

%d bloqqer bunu bəyənir: