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

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

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

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

โดย nuattawoot » 20/06/2017 4:33 pm

แก้ได้แล้วครับ ขอบคุณคับ งมหาตั้งนาน

ยังไม่ได้แก้
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)
)"""

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

โดย nuattawoot » 20/06/2017 3:35 pm

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 จะติดต่อฐานข้อมูลยังไงครับ

โดย nuattawoot » 20/06/2017 12:22 pm

ขึ้นแบบนี้ใช้ได้แล้วครับ ผมเห็นมี 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 จะติดต่อฐานข้อมูลยังไงครับ

โดย mindphp » 20/06/2017 11:13 am

ขึ้น Error ว่าอะไรครับ

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

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

โดย nuattawoot » 20/06/2017 11:00 am

ยังใช้ไม่ได้เหมือนเดิมครับ

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

โดย mindphp » 20/06/2017 10:48 am

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')

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

โดย nuattawoot » 20/06/2017 10:34 am

มันขึ้นไม่สามารถติดต่อฐานข้อมูลได้ ฐานข้อมูลใช้ 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()

ข้างบน