หน้า 1 จากทั้งหมด 1

ใช้โปรแกม pycham เขียน python จะติดต่อฐานข้อมูลยังไงครับ

โพสต์แล้ว: 20/06/2017 10:34 am
โดย nuattawoot
มันขึ้นไม่สามารถติดต่อฐานข้อมูลได้ ฐานข้อมูลใช้ PostgreSQL หรือมีวิธีการเชื่อมต่อไหมที่ต้องย้ายไฟล์ของpostgra เข้าโปรเจ็ค คับ
ผมใช้ ระบบปฏิบัติการ Ubuntu ขอคำแนะนำด้วยคับ

import psycopg2 as p
con = None
try:
con = p.connect(database='test', user='postgres', passwd='postgrespwd')
cur = con.cursor()
cur.execute('select version()')
ver = cur.fetchone()
print (ver)
except p.DatabaseError:
print ('ต่อฐายข้อมูลไม่ได้')
if con:
con.close()

Re: ใช้โปรแกม pycham เขียน python จะติดต่อฐานข้อมูลยังไงครับ

โพสต์แล้ว: 20/06/2017 10:48 am
โดย mindphp
https://www.mindphp.com/forums/viewtopic ... 367#p92367
ลองใส่ parameter host เพิ่มลงไปครับ

โค้ด: เลือกทั้งหมด

con = p.connect(host='localhost', database='test', user='postgres', passwd='postgrespwd')
หรือ

โค้ด: เลือกทั้งหมด

con = p.connect(host='127.0.0.1', database='test', user='postgres', passwd='postgrespwd')

Re: ใช้โปรแกม pycham เขียน python จะติดต่อฐานข้อมูลยังไงครับ

โพสต์แล้ว: 20/06/2017 11:00 am
โดย nuattawoot
ยังใช้ไม่ได้เหมือนเดิมครับ

Re: ใช้โปรแกม pycham เขียน python จะติดต่อฐานข้อมูลยังไงครับ

โพสต์แล้ว: 20/06/2017 11:13 am
โดย mindphp
ขึ้น Error ว่าอะไรครับ

ลองเช็ค user,passs,ชื่อฐานข้อมูล ด้วยครับ มีอยู่จริงในระบบหรือเปล่า
user ลองเช็คจากการทดลอง login ใน #pgadmin ก็ได้ครับ

Re: ใช้โปรแกม pycham เขียน python จะติดต่อฐานข้อมูลยังไงครับ

โพสต์แล้ว: 20/06/2017 12:22 pm
โดย nuattawoot
ขึ้นแบบนี้ใช้ได้แล้วครับ ผมเห็นมี port เลยลองเพิ่มไปใช้ได้เลย

โค้ด: เลือกทั้งหมด

  con = p.connect(host='localhost', database='test', user='testerp', password='tesrerp12',port="5432")
/usr/bin/python2.7 /home/com003/PycharmProjects/python_test/connect.py
('PostgreSQL 9.5.6 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609, 64-bit',)

Process finished with exit code 0

Re: ใช้โปรแกม pycham เขียน python จะติดต่อฐานข้อมูลยังไงครับ

โพสต์แล้ว: 20/06/2017 3:35 pm
โดย nuattawoot
connect ผ่านแล้ว แต่พอใส่โค๊ด สร้าง table มันกลับบอก ติดต่อฐานข้อมูลผิดพลาด
อีกอย่าง ตรง password ใช้ password=' ' หรือ passwd=' ' เพราะ ถ้าใช้ password ใส่พาสหรือไม่ใส่ หรือ ใส่พาสผิด ก็รันผ่าน แต่พอใช้ passwd รันไม่ผ่านเลย ครับ แต่ตัวอย่าง ใช้ passwd

โค้ด: เลือกทั้งหมด

import psycopg2 as p

con = None
try:
    con = p.connect(host='127.0.0.1', database='test', user='openerp', password='openerppwd')
    cur = con.cursor()
    cur.execute("DROP TABLE IF EXISTS `testpython`")

    print('Drop ตาราง testpython เรียบร้อยแล้ว')

    sql = """CREATE TABLE IF NOT EXISTS `testpython` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `name_first` varchar(100) NOT NULL DEFAULT '',
    `name_last` varchar(100) NOT NULL DEFAULT '',
    `favorite_color` varchar(100) DEFAULT '',
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=tis620 AUTO_INCREMENT=0 ;"""

    cur.execute(sql)
    print('สร้างตาราง persons3 เรียบร้อยแล้ว')

except p.Error:
    print('ติดต่อฐานข้อมูลผิดพลาด')
if con:
    con.close()

Re: ใช้โปรแกม pycham เขียน python จะติดต่อฐานข้อมูลยังไงครับ

โพสต์แล้ว: 20/06/2017 4:33 pm
โดย nuattawoot
แก้ได้แล้วครับ ขอบคุณคับ งมหาตั้งนาน

ยังไม่ได้แก้
sql = """CREATE TABLE IF NOT EXISTS 'testpython' (
'id' int(10) unsigned NOT NULL AUTO_INCREMENT,
'name_first' varchar(100) NOT NULL DEFAULT '',
'name_last' varchar(100) NOT NULL DEFAULT '',
'favorite_color' varchar(100) DEFAULT '',
PRIMARY KEY ('id')
) ENGINE=MyISAM DEFAULT CHARSET=tis620 AUTO_INCREMENT=0 ;"""


ลบตัว ซิงเกอร์ โคด ออก ' '
เปลียน 'name_first character' ให้เป็น name_first character

แก้แล้ว
sql = """CREATE TABLE IF NOT EXISTS test_python(
id serial NOT NULL,
name_first character varying(100) NOT NULL,
name_last character varying(100) NOT NULL,
favorite_color character varying(100),
CONSTRAINT test_python_pkey PRIMARY KEY (id)
)"""