РНР. Уровень 4. Проектирование и разработка сложных веб-проектов на РНР 5 PHP Data Objects.

Slides:



Advertisements
Similar presentations
PHP SQL. Connection code:- mysql_connect("server", "username", "password"); Connect to the Database Server with the authorised user and password. Eg $connect.
Advertisements

PHP and MySQL PHP for the Web, page PHP and MySQL MySQL Resource PHP – MySQL Resource
Data-Driven Web Pages Stephen Rondeau 18 May 2009.
Introducing PHP Data Objects Wez Furlong
PHP-MySQL By Jonathan Foss. PHP and MySQL Server Web Browser Apache PHP file PHP MySQL Client Recall the PHP architecture PHP can communicate with a MySQL.
SJSU CS157B Dr. Lee1  2004 Jenny Mitchell Two Useful Tools You Can’t Live Without by Jenny Mitchell SJSU CS157B Section PHP and MySQL.
Programming with php By: Seth Larson. A little bit about PHP  PHP stands for PHP:  Hypertext Preprocessor  PHP is a widely-used general-purpose server-side.
Deleting and Updating Records in MySQL using PHP Basharat Mahmood, Department of Computer Science,CIIT,Islamabad, Pakistan. 1.
Class 3 MySQL Robert Mudge Reference:
1 Chapter 8 – Working with Databases spring into PHP 5 by Steven Holzner Slides were developed by Jack Davis College of Information Science and Technology.
1 How to use MySQL? Speaker: Ching-Chen Chang. 2 Outline  Command Line Interface (CLI)  Web-based Interface.
CpSc 3220 HTML, PHP, MySQL Exercises Chapter 19 Murach’s PHP and MySQL.
PDO, PHP Data Object Use a Database with PHP
Chapter 7 PHP Interacts with Ms. Access (Open DataBase Connectivity (ODBC))
PHP Data Object (PDO) Khaled Al-Sham’aa. What is PDO? PDO is a PHP extension to formalise PHP's database connections by creating a uniform interface.
PHP Data Objects Layer (PDO) Ilia Alshanetsky. What is PDO Common interface to any number of database systems. Common interface to any number of database.
Sayed Ahmed Computer Engineering, BUET, Bangladesh MSC, Computer Science, U of Manitoba, Canada
MOODLE and Other Database Integration ผศ. ดร. เด่นพงษ์ สุดภักดี ผู้ช่วยอธิการบดีฝ่ายวิชาการ และ ผู้อำนวยการสำนักนวัตกรรมการเรียนการสอน มหาวิทยาลัยขอนแก่น.
PHP With the New PDO::Informix Presented by: Thomas Beebe Advanced DataTools Corporation
Software Design Patterns (2) four commonly used design patterns using php (singleton, factory, adapter & decorator)
PHP MySQL. SQL: Tables CREATE TABLE tablename { fieldname type(length) extra info,... } Extra info: –NULL (allows nulls in this field) –Not NULL (null.
SYST Web Technologies SYST Web Technologies Databases & MySQL.
PHP Part 2.
1. Connecting database from PHP 2. Sending query 3. Fetching data 4. Persistent connections 5. Best practices.
Lecture 10 – MYSQL and PHP (Part 2)
Object Oriented Programming in PHP. Topics Quick OOP Review Classes Magic Methods Static Methods Inheritance Exceptions Interfaces Operators Type Hinting.
Database Access with PHP and MySQL CS356 Examples from Web Database Applications, by Hugh E. Williams & David Lane, O'Reilly, 2002.
PHP+MySQL Integration. Connecting to databases One of the most common tasks when working with dynamic webpages is connecting to a database which holds.
Database APIs and Wrappers
Object Oriented Programming in PHP. List of Items of Interest What is a Class What is an Object What is a Singleton Multiple Objects, How to store. Advantages.
Hibernate 3.0. What is Hibernate Hibernate is a free, open source Java package that makes it easy to work with relational databases. Hibernate makes it.
Intro to DatabasesClass 4 SQL REVIEW To talk to the database, you have to use SQL SQL is used by many databases, not just MySQL. SQL stands for Structured.
PHP PDO & PHP SOAP Introduce. Agenda What is PHP PDO and PHP SOAP? Setup PHP PDO to connect database, query database and close the connection. Setup SOAP.
Retrieving data from MySQL using PHP Basharat Mahmood, Department of Computer Science,CIIT,Islamabad, Pakistan. 1.
PHP Database connectivity Connecting with RDBMS and editing, adding, and deleting databases therein are all done through PHP functions.
Работа с базами данных – JDBC Введение в JDBC. JDBC JDBC (Java DataBase Connectivity) – технология доступа к базам данных для Java Состоит из: API (java.sql.
Человеко-машинное взаимодействие Лекция 5 Мерзлякова Екатерина Юрьевна к.т.н. доцент ПМиК.
PHP Data Objects Wez Furlong. About the author PHP Core Developer since 2001 Author of the Streams layer “King” of PECL Author of most of PDO and its.
PHP Workshop ‹#› PHP Data Object (PDO). PHP Workshop ‹#› What is PDO? PDO is a PHP extension to formalise PHP's database connections by creating a uniform.
Web Scripting [PHP] CIS166AE Wednesdays 6:00pm – 9:50pm Rob Loy.
NMD202 Web Scripting Week5. What we will cover today PHP & MySQL Displaying Dynamic Pages Exercises Modifying Data PHP Exercises Assignment 1.
CF Database I Jeff Peters Why Are You Here? Data and Persistence ODBC Relational vs. Flat SQL CFQUERY, CFOUTPUT, CFLOOP Practicum.
PHP Workshop ‹#› أطلق إبداعك 2 أطلق إبداعك 2 مدرس معتمد من مركز زووم PHP Data Object (PDO)
MySQL. Is a SQL (Structured Query Language) database server. Can be accessed using PHP with embedded SQL Queries Supports Large DB’s, 60,000 tables with.
Accessing mySQL relational database. MySQL database.  Today, we will attempt and open a connection to the MySQL server.  We need to specify the database.
PHP Programming. Topics Database Handling (MySQL, MSSQL, ODBC)
PHP: MySQL. PHP Connect to MySQL PHP 5 and later can work with a MySQL database using: – MySQLi extension (the "i" stands for improved) – PDO (PHP Data.
PHP Database Pemrograman Internet. PHP MySQL Database With PHP, you can connect to and manipulate databases. MySQL is the most popular database system.
Database MySQL Universitas Muhammadiyah Surakarta Yogiek Indra Kurniawan.
Connecting, Queries, Best Practices Tran Anh Tuan Edit from Telerik Software Academy
Chapter 8 Manipulating MySQL Databases with PHP PHP Programming with MySQL 2 nd Edition.
CSI 3125, Preliminaries, page 1 JDBC. CSI 3125, Preliminaries, page 2 JDBC JDBC stands for Java Database Connectivity, which is a standard Java API (application.
CHAPTER 10 PHP MySQL Database
РНР. Уровень 4. Проектирование и разработка сложных веб-проектов на РНР 5 Reflection.
РНР. Уровень 4. Проектирование и разработка сложных веб-проектов на РНР 5 Шаблон проектирования MVC.
Querying Information in a Database. CONTENTS Relational Database Systems Creating Database with SQL Server Reading Data with LINQ Requirements to Get.
SQL pepper. Why SQL File I/O is a great deal of code Optimal file organization and indexing is critical and a great deal of code and theory implementation.
Introduction to PHP 5 and IBM DB2 Building web applications with PHP 5.2 and IBM DB2.
Please remember to thank our sponsors!
Web Systems & Technologies
PHP Data Objects for MySQL
PHP Built-In Functions
PHP + MySQL PDO PHPMyAdmin Practice: Vote system
CIIT-Human Computer Interaction-CSC456-Fall-2015-Mr
Unix System Administration
Perl Database – Just Enough
Software Design Patterns (2)
Web Programming– UFCFB Lecture
MySQL Web Application Connecting to a MySQL database
Database Access with PHP and MySQL
Presentation transcript:

РНР. Уровень 4. Проектирование и разработка сложных веб-проектов на РНР 5 PHP Data Objects

Темы модуля Введение PDO - PHP Data Objects Лабораторная работа

PDO – PHP Data Objects  DBLIB: FreeTDS / Microsoft SQL Server / Sybase  Firebird ( Firebird/Interbase 6http://firebird.sourceforge.net/  IBM (IBM DB2)  INFORMIX - IBM Informix Dynamic Server  MYSQL ( MySQL 3.x/5.xhttp://  OCI ( Oracle Call Interface  ODBC: ODBC v3 (IBM DB2 and unixODBC)  PGSQL ( PostgreSQLhttp://  SQLITE ( SQLite 2.x/3.xhttp://sqlite.org/ PDO::getAvailableDrivers()

Соединение с БД  MySQL mysql_connect($host, $user, $password); mysql_select_db($db);  SQLite $dbh = sqlite_open($db, 0666);  PostgreSQL pg_connect("host=$host dbname=$db user=$user password=$password");  MySQL $conn = new PDO("mysql:host=$host;dbname=$db", $user, $pass);  SQLite $conn = new PDO("sqlite:$db");  PostgreSQL $conn = new PDO("pgsql:host=$host dbname=$db", $user, $pass);

Строки соединения с различными БД  MySQL ("mysql:host=hostname;dbname=mysql", "username", "password")  SQLite ("sqlite:/path/to/database.db") ("sqlite::memory:")  PostgreSQL ("pgsql:dbname=pdo;host=hostname", "username", "password" )  Oracle ("OCI:dbname=mydatabase;charset=UTF-8", "username", "password")  ODBC ("odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\database.mdb;Uid=Admin")  Firebird ("firebird:dbname=hostname:C:\path\to\database.fdb", "username", "password")  Informix ("informix:DSN=InformixDB", "username", "password")  DBLIB ("dblib:host=hostname:port;dbname=mydb","username","password")

Использование файла конфигурации  Файл config.ini db.conn="mysql:host=localhost;dbname=test" db.user=“vasya" db.pass=“parol“  Загрузка файла конфигурации $params = parse_ini_file("config.ini");  Соединение с БД $conn = new PDO($params['db.conn'], $params['db.user'], $params['db.pass']);

Выполнение запроса к БД  $sql = ‘INSERT INTO users VALUES(‘john’,  MySQL mysql_connect('localhost', 'vasya', 'parol'); mysql_select_db('users'); $result = mysql_query($sql);  SQLite $dbh = sqlite_open('/path/to/users.db'); $result = sqlite_query($sql, $dbh);  PostgreSQL pg_connect("host=localhost dbname=users user=vasya password=parol"); $result = pg_query($sql);  PDO $conn = new PDO($conn, $user, $password); $result = $conn->exec($sql);

Выборка данных из БД  $sql = 'SELECT name FROM users ORDER BY name';  MySQL mysql_connect('localhost', 'vasya', 'parol'); mysql_select_db('users'); $result = mysql_query($sql);  SQLite $dbh = sqlite_open('/path/to/users.db'); $result = sqlite_query($sql, $dbh);  PostgreSQL pg_connect("host=localhost dbname=users user=vasya password=parol"); $result = pg_query($sql);  PDO $conn = new PDO($conn, $user, $password); $result = $conn->query($sql);

Фильтрация строк  SELECT * FROM users WHERE name='$name'  $name = $_POST['name'];  MySQL $name = mysql_real_escape_string($name);  SQLite $name = sqlite_escape_string($name);  PostgreSQL $name = pg_escape_string($name);  PDO $name = $conn->quote($name); $result = $conn->query("SELECT * FROM users WHERE name='$name'");

Режимы FETCH  MySQL $result = mysql_query($sql); $row = mysql_fetch_assoc($result); $row = mysql_fetch_array($result, MYSQL_ASSOC);  SQLite $result = sqlite_query($dbh, $sql); $row = sqlite_fetch_array($result, SQLITE_ASSOC);  PostgreSQL $result = pg_query($sql); $row = pg_fetch_assoc($result); $row = pg_fetch_assoc($result, 0, PGSQL_ASSOC);  PDO $stmt = $conn->query($sql); $result = $stmt->fetch(PDO::FETCH_ASSOC); $result = $stmt->fetch(PDO::FETCH_NUM); $result = $stmt->fetch(PDO::FETCH_BOTH);

Режимы FETCH (продолжение)  FETCH OBJECT $obj = $stmt->fetch(PDO::FETCH_OBJ); echo $obj->id.' '; echo $obj->name.' '; echo $obj-> ;  FETCH LAZY $result = $stmt->fetch(PDO::FETCH_LAZY); echo $result[0].' '; echo $result['name'].' '; echo $result-> ;

Работа с классами class User{ public $id; public $name; public $ ; function showInfo(){ echo ' '.$this->name.' : '.$this-> .' '; } }  $obj = $stmt->fetchALL(PDO::FETCH_CLASS, 'User'); foreach($obj as $user) $user->showInfo();  $users = $stmt->fetchObject('User');  $user = new User(); $stmt = $dbh->query($sql); $stmt->setFetchMode(PDO::FETCH_INTO, $user);

Обработка ошибок $dbh = new PDO("mysql:host=$hostname;dbname=mydb", $username, $password);  Exception $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  Warning $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);  Silent $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);  Info echo $dbh->errorCode(); print_r($dbh->errorInfo());

Использование подготовленных запросов  $stmt = $dbh->prepare("SELECT * FROM users WHERE id = :id AND name = :name"); $stmt->bindParam(':id', $id, PDO::PARAM_INT); $stmt->bindParam(':name', $name, PDO::PARAM_STR); $stmt->execute();  $stmt = $dbh->prepare("SELECT * FROM users WHERE id = ? AND name = ?"); $stmt->bindParam(1, $id, PDO::PARAM_INT); $stmt->bindParam(2, $name, PDO::PARAM_STR); $stmt->execute();  $data = array('id'=>1, 'name'=>'Ivan'); $stmt = $dbh->prepare("SELECT * FROM users WHERE id = :id AND name = :name"); $stmt->bindParam(':id', $id, PDO::PARAM_INT); $stmt->bindParam(':name', $name, PDO::PARAM_STR); $stmt->execute($data);

Связывание полей таблицы $sql = 'SELECT id, name, FROM users'; $stmt = $dbh->prepare($sql); $stmt->execute(); $stmt->bindColumn(1, $id); $stmt->bindColumn(2, $name); $stmt->bindColumn(' ', $ ); while ($row = $stmt->fetch(PDO::FETCH_BOUND)) { $data = $id. "\t". $name. "\t". $ . "\n"; print $data; }

Транзакции $users = file(USERS_FILE); try { $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->beginTransaction(); foreach($users as $user){ list($name, $ ) = explode("|", $user); $dbh->exec("INSERT INTO users (name, ) VALUES ($name, $ )"); } $dbh->commit(); }catch(PDOException $e){ $dbh->rollback(); }

PDO и шаблон «Одиночка» class DB{ private static $instance = NULL; private function __construct(){} private function __clone(){} public static function getInstance(){ if(!self::$instance){ self::$instance = new PDO('sqlite2:users.db'); self::$instance-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } return self::$instance; } try{ $result = DB::getInstance()->query("SELECT * FROM users"); }catch(PDOException $e){ echo $e->getMessage(); }

Лабораторная работа Файл pdo\pdo-spl-1.php 1 1 Выполните задания Выполните задание Использование PDO и SPL Выполните задание

Выводы PDO - PHP Data Objects Соединение с БД Выполнение запроса к БД Фильтрация строк Режимы FETCH Работа с классами Обработка ошибок Использование подготовленных запросов Использование транзакций