Latest web development tutorials
×

Ruby หลักสูตร

Ruby หลักสูตร Ruby แนะนำโดยย่อ Ruby สิ่งแวดล้อม Ruby ติดตั้ง Linux Ruby ติดตั้ง Windows Ruby การเข้ารหัสจีน Ruby เลือกบรรทัดคำสั่ง Ruby ตัวแปรสภาพแวดล้อม Ruby ไวยากรณ์ Ruby ชนิดข้อมูล Ruby คลาสและวัตถุ Ruby กรณีระดับ Ruby ตัวแปร Ruby ผู้ประกอบการ Ruby หมายเหตุ Ruby เงื่อนไข Ruby การไหลเวียน Ruby ทาง Ruby กลุ่ม Ruby โมดูล Ruby เชือก Ruby แถว Ruby กัญชา Ruby วันที่และเวลา Ruby ขอบเขต Ruby iterator Ruby input และ output ไฟล์ Ruby File ชั้นเรียนและวิธี Ruby Dir ชั้นเรียนและวิธี Ruby ผิดปกติ

Ruby การสอนที่ทันสมัย

Ruby เชิงวัตถุ Ruby นิพจน์ปกติ Ruby การเข้าถึงฐานข้อมูล - DBI หลักสูตร Ruby MySQL Ruby CGI โครงการ Ruby CGI ทาง Ruby CGI Cookies Ruby CGI Sessions Ruby ส่ง Email SMTP Ruby Socket โครงการ Ruby XML, XSLT, XPath Ruby Web Services Ruby multithreading Ruby JSON Ruby RubyGems

ทับทิม DBI ดำเนินการอ่าน

DBI มีหลายวิธีที่แตกต่างกันที่จะได้รับการบันทึกจากฐานข้อมูลDBH สมมติว่าเป็นจัดการฐานข้อมูลฏเป็นคำสั่งจับ:

序号方法 & 描述
1db.select_one( stmt, *bindvars ) => aRow | nil
执行带有bindvars绑定在参数标记前的stmt语句。返回第一行,如果结果集为空则返回nil
2db.select_all( stmt, *bindvars ) => [aRow, ...] | nil

db.select_all( stmt, *bindvars ){ |aRow| aBlock }

执行带有bindvars绑定在参数标记前的stmt语句。调用不带有块的该方法,返回一个包含所有行的数组。如果给出了一个块,则会为每行调用该方法。
3sth.fetch => aRow | nil
返回下一行 。如果在结果中没有下一行,则返回nil
4sth.fetch { |aRow| aBlock }
为结果集中剩余的行调用给定的块。
5sth.fetch_all => [aRow, ...]
返回保存在数组中的结果集的所有剩余的行。
6sth.fetch_many( count ) => [aRow, ...]
返回保存在 [aRow, ...] 数组中的往下第count行。
7sth.fetch_scroll( direction, offset=1 ) => aRow | nil
返回direction参数和offset指定的行。除了 SQL_FETCH_ABSOLUTE 和 SQL_FETCH_RELATIVE,其他方法都会丢弃参数offsetdirection参数可能的值,请查看下面的表格。
8sth.column_names => anArray
返回列的名称。
9column_info => [ aColumnInfo, ... ]
返回 DBI::ColumnInfo 对象的数组。每个对象存储有关某个列的信息,并包含该列的名称、类型、精度等其他更多的信息。
10sth.rows => rpc
返回执行语句处理的行数Count,如果不存在则返回nil
11sth.fetchable? => true | false
如果可能获取行,则返回true,否则返回false
12sth.cancel
释放结果集所占有的资源。在调用该方法后,您就不能在获取行了,除非再次调用execute
13sth.finish
释放准备语句所占有的资源。在调用该方法后,您就不能在该对象上调用其他进一步操作的方法了。

พารามิเตอร์ทิศทาง

ค่าต่อไปนี้สามารถนำมาใช้ทิศทางพารามิเตอร์วิธีfetch_scroll:

常量描述
DBI::SQL_FETCH_FIRST获取第一行。
DBI::SQL_FETCH_LAST获取最后一行。
DBI::SQL_FETCH_NEXT获取下一行。
DBI::SQL_FETCH_PRIOR获取上一行。
DBI::SQL_FETCH_ABSOLUTE获取在该位置偏移处的行。
DBI::SQL_FETCH_RELATIVE获取距离当前行该偏移量的行。

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการที่จะได้รับงบข้อมูลเมตา สมมติว่าเรามีตารางการทำงานของพนักงาน

#! / usr / bin / ทับทิม -w

จำเป็นต้องมี "DBI"

เริ่มต้น
     # เชื่อมต่อกับเซิร์ฟเวอร์ MySQL DBH = DBI.connect ( "DBI: Mysql: TestDB: localhost" 
	                    "testuser", "test123")
     dbh.prepare ฏ = ( "SELECT * จากพนักงาน 
	                    ในกรณีที่เงิน>? ")
     sth.execute (1000)
     ถ้า sth.column_names.size == 0 แล้ว
        ทำให้ "คำชี้แจงมีผลไม่ได้ตั้งค่า"
        printf "จำนวนแถวรับผลกระทบ:% d \ n", sth.rows
     อื่น
        ทำให้ "คำชี้แจงมีผลให้การตั้งค่า"
        แถว = sth.fetch_all
        printf "จำนวนแถว:% d \ n", rows.size
        printf "จำนวนคอลัมน์:% d \ n", sth.column_names.size
        sth.column_info.each_with_index ทำ | ข้อมูลผม |
          printf "--- คอลัมน์% D (% s) --- \ n", I, info [ "ชื่อ"]
          printf "sql_type:% s \ n", ข้อมูล [ "sql_type"]
          printf "TYPE_NAME:% s \ n", ข้อมูล [ "TYPE_NAME"]
          printf "ความแม่นยำ:% s \ n", ข้อมูล [ "แม่นยำ"]
          printf "ขนาด:% s \ n", ข้อมูล [ "โย"]
          printf "nullable:% s \ n", ข้อมูล [ "nullable"]
          printf "การจัดทำดัชนี:% s \ n", ข้อมูล [ "การจัดทำดัชนี"]
          printf "หลัก:% s \ n", ข้อมูล [ "หลัก"]
          printf "ที่ไม่ซ้ำกัน:% s \ n", ข้อมูล [ "ไม่ซ้ำกัน"]
          printf "mysql_type:% s \ n", ข้อมูล [ "mysql_type"]
          printf "mysql_type_name:% s \ n", ข้อมูล [ "mysql_type_name"]
          printf "mysql_length:% s \ n", ข้อมูล [ "mysql_length"]
          printf "mysql_max_length:% s \ n", ข้อมูล [ "mysql_max_length"]
          printf "mysql_flags:% s \ n", ข้อมูล [ "mysql_flags"]
      ปลาย
   ปลาย
   sth.finish
กู้ภัย DBI :: DatabaseError => E
     ทำให้ "เกิดข้อผิดพลาด"
     ทำให้ "รหัสข้อผิดพลาด: # {e.err}"
     ทำให้ "ข้อผิดพลาด: # {e.errstr}"
ทำให้มั่นใจ
     การเชื่อมต่อ dbh.disconnect ถ้า dbh # ตัดการเชื่อมต่อจากเซิร์ฟเวอร์
ปลาย

นี้ก่อให้เกิดผลลัพธ์ต่อไปนี้:

คำสั่งมีชุดผล
จำนวนแถว: 5
จำนวนคอลัมน์: 5
--- คอลัมน์ 0 (FIRST_NAME) ---
sql_type: 12
TYPE_NAME: VARCHAR
ความแม่นยำ: 20
ขนาด: 0
nullable: จริง
จัดทำดัชนี: เท็จ
หลักเท็จ
ไม่ซ้ำกัน: เท็จ
mysql_type: 254
mysql_type_name: VARCHAR
mysql_length: 20
mysql_max_length: 4
mysql_flags: 0
--- คอลัมน์ที่ 1 (LAST_NAME) ---
sql_type: 12
TYPE_NAME: VARCHAR
ความแม่นยำ: 20
ขนาด: 0
nullable: จริง
จัดทำดัชนี: เท็จ
หลักเท็จ
ไม่ซ้ำกัน: เท็จ
mysql_type: 254
mysql_type_name: VARCHAR
mysql_length: 20
mysql_max_length: 5
mysql_flags: 0
--- คอลัมน์ 2 (อายุ) ---
sql_type: 4
TYPE_NAME: จำนวนเต็ม
ความแม่นยำ: 11
ขนาด: 0
nullable: จริง
จัดทำดัชนี: เท็จ
หลักเท็จ
ไม่ซ้ำกัน: เท็จ
mysql_type: 3
mysql_type_name: INT
mysql_length: 11
mysql_max_length: 2
mysql_flags: 32768
--- คอลัมน์ 3 (เพศ) ---
sql_type: 12
TYPE_NAME: VARCHAR
ความแม่นยำ: 1
ขนาด: 0
nullable: จริง
จัดทำดัชนี: เท็จ
หลักเท็จ
ไม่ซ้ำกัน: เท็จ
mysql_type: 254
mysql_type_name: VARCHAR
mysql_length: 1
mysql_max_length: 1
mysql_flags: 0
--- คอลัมน์ 4 (รายได้) ---
sql_type: 6
TYPE_NAME: FLOAT
ความแม่นยำ: 12
ขนาด: 31
nullable: จริง
จัดทำดัชนี: เท็จ
หลักเท็จ
ไม่ซ้ำกัน: เท็จ
mysql_type: 4
mysql_type_name: FLOAT
mysql_length: 12
mysql_max_length: 4
mysql_flags: 32768