SlideShare a Scribd company logo
PHP, PHP FRAMEWORKS AND DATABASE
Sayed Ahmed
Computer Engineering, BUET, Bangladesh
MSC, Computer Science, U of Manitoba, Canada
http://www.JustEtc.net
http://sayed.justetc.net
sayed@justetc.net
TOPICS
 Connection strategies
 Configuration for connection in different
frameworks
 PHP and DB2, MSSQL Server
 Common database oriented operations
 Reference to DB oriented functions/classes
CONNECTION
 mysql_connect
 mysqli_connect
 PDO
 PDO_ODBC
 Connection from Frameworks
 Code Igniter – configure for db connection
 CakePHP - configure for db connection
 Zend - configure for db connection
PDO VS MYSQLI
 Overall, PDO is a better choice than mysqli
 However, if performance is the only issue
that you care, and
 mysql will be the backend database all the
time,
 you can use mysqli
 Reference:
 http://net.tutsplus.com/tutorials/php/pdo-vs-
mysqli-which-should-you-use/
MYSQL_CONNECT
 mysql_connect
 Opens a connection to a MySQL Server
 Deprecated as of PHP 5.5.0, and will be removed in
the future.
 Instead use MySQLi or PDO_MySQL
 mysql_connect examples
MYSQL_CONNECT EXAMPLES USING PORTS
MYSQL_CONNECT USING PATH TO
SOCKET
MYSQLI_CONNECT — ALIAS OF MYSQLI::__CONSTRUCT()
MYSQLI_CONNECT
MYSQLI_CONNECT (OBJECT EXAMPLE)
OBJECT ORIENTED STYLE CONNECTION WITH MYSQLI
DATABASE CONNECTION WITH PDO
PDO CONNECTION WHEN PARAMETERS IN A FILE
PDO USING PHP.INI CONFIGURATIONS
CODE IGNITER DATABASE CONFIGURATION
 application/config/database.php
 $db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "database_name";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";
$db['default']['swap_pre'] = "";
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
 Reference:
 http://ellislab.com/codeigniter/user-guide/database/configuration.html
CAKEPHP AND MYSQL
 A copy of CakePHP’s database configuration
file is found in
 /app/Config/database.php.default
 Make a copy of this file in the same directory,
but name it
 database.php
 Change database.php as follows
CAKEPHP AND MYSQL
ZEND AND DATABASE CONFIGURATION
 Zend_Config_Ini enables developers to store
configuration data in a familiar INI format
PDO AND PREPARED STATEMENTS
PDO FETCH AND PREPARED STMT
PDO AND STORED PROCEDURE (OUT
PARAM)
PDO STRD PROC WITH IN/OUT PARAMS
MYSQLI AND STORED PROCEDURE
MYSQLI FETCHING RESULTS FROM STORED PROCEDURES
PHP FUNCTIONS FOR SQL SERVER
 The name of the functions may closely resemble the functionality.
 # mssql_ bind
# mssql_ close
# mssql_ connect
# mssql_ data_ seek
# mssql_ execute
# mssql_ fetch_ array
# mssql_ fetch_ assoc
# mssql_ fetch_ batch
# mssql_ fetch_ field
# mssql_ fetch_ object
# mssql_ fetch_ row
# mssql_ field_ length
# mssql_ field_ name
# mssql_ field_ seek
# mssql_ field_ type
# mssql_ free_ result
# mssql_ free_ statement
PHP FUNCTIONS FOR SQL SERVER
 # mssql_ get_ last_ message
# mssql_ guid_ string
# mssql_ init
# mssql_ min_ error_ severity
# mssql_ min_ message_ severity
# mssql_ next_ result
# mssql_ num_ fields
# mssql_ num_ rows
# mssql_ pconnect
# mssql_ query
# mssql_ result
# mssql_ rows_ affected
# mssql_ select_ db
PHP AND IBM DB2
 PHP has concepts like PDO and PDO_ODBC, and
generic odbc features that will allow you to connect to and
work with DB-2 databases. Generic odbc is the
general/procedural way to connect to. PDO and
PDO_ODBC are object oriented ways. PDO works with
native IBM drivers. PDO_ODBC uses odbc connections
to the DB2. For PHP you need to install drivers to support
DB2. I worked with PDO_ODBC to connect to DB-2
databases in IBM iSeries servers. You need to install
odbc db2 drivers for iseries servers. Then in
/etc/odbcinst.ini file you need to mention driver
specifications and in /etc/odbc.ini, you need to mention
the odbc dsn name, database name, and some other
parameters to connect to the database. Though, you may
also supply some parameters in the PDO_ODBC connect
method.
PHP AND SQL SERVER STORED PROCEDURE
PHP AND SQL SERVER STORED PROCEDURE
MYSQL RELATED FUNCTIONS
MYSQL RELATED FUNCTIONS
MYSQL RELATED FUNCTIONS
MYSQLI — THE MYSQLI CLASS
 mysqli::$affected_rows — Gets the number of affected
rows in a previous MySQL operation
 mysqli::autocommit — Turns on or off auto-committing
database modifications
 mysqli::begin_transaction — Starts a transaction
 mysqli::change_user — Changes the user of the specified
database connection
 mysqli::character_set_name — Returns the default
character set for the database connection
 mysqli::$client_info — Get MySQL client info
 mysqli::$client_version — Returns the MySQL client
version as a stringmysqli::close — Closes a previously
opened database connection
MYSQLI — THE MYSQLI CLASS
 mysqli::commit — Commits the current transaction
 mysqli::$connect_errno — Returns the error code from
last connect call
 mysqli::$connect_error — Returns a string description of
the last connect error
 mysqli::__construct — Open a new connection to the
MySQL server
 mysqli::debug — Performs debugging operations
 mysqli::dump_debug_info — Dump debugging
information into the log
 mysqli::$errno — Returns the error code for the most
recent function call
MYSQLI — THE MYSQLI CLASS
 mysqli::$error_list — Returns a list of errors from the last command executed
 mysqli::$error — Returns a string description of the last error
 mysqli::$field_count — Returns the number of columns for the most recent query
 mysqli::get_charset — Returns a character set objectmysqli::get_client_info —
Get MySQL client info
 mysqli_get_client_stats — Returns client per-process statistics
 mysqli_get_client_version — Returns the MySQL client version as an integer
 mysqli::get_connection_stats — Returns statistics about the client connection
 mysqli::$host_info — Returns a string representing the type of connection used
 mysqli::$protocol_version — Returns the version of the MySQL protocol used
 mysqli::$server_info — Returns the version of the MySQL server
 mysqli::$server_version — Returns the version of the MySQL server as an
integer
 mysqli::get_warnings — Get result of SHOW WARNINGS
MYSQLI — THE MYSQLI CLASS
 mysqli::$info — Retrieves information about the most recently
executed querymysqli::init — Initializes MySQLi and returns a
resource for use with mysqli_real_connect()mysqli::$insert_id —
Returns the auto generated id used in the last querymysqli::kill —
Asks the server to kill a MySQL threadmysqli::more_results —
Check if there are any more query results from a multi
querymysqli::multi_query — Performs a query on the
databasemysqli::next_result — Prepare next result from
multi_querymysqli::options — Set optionsmysqli::ping — Pings a
server connection, or tries to reconnect if the connection has
gone downmysqli::poll — Poll connectionsmysqli::prepare —
Prepare an SQL statement for executionmysqli::query —
Performs a query on the databasemysqli::real_connect — Opens
a connection to a mysql servermysqli::real_escape_string —
Escapes special characters in a string for use in an SQL
statement, taking into account the current charset of the
connectionmysqli::real_query — Execute an SQL query
MYSQLI_STMT — THE MYSQLI_STMT CLASS
 mysqli_stmt::$affected_rows — Returns the total number
of rows changed, deleted, or inserted by the last executed
statementmysqli_stmt::attr_get — Used to get the current
value of a statement attributemysqli_stmt::attr_set —
Used to modify the behavior of a prepared
statementmysqli_stmt::bind_param — Binds variables to
a prepared statement as
parametersmysqli_stmt::bind_result — Binds variables to
a prepared statement for result storagemysqli_stmt::close
— Closes a prepared statementmysqli_stmt::data_seek
— Seeks to an arbitrary row in statement result
setmysqli_stmt::$errno — Returns the error code for the
most recent statement callmysqli_stmt::$error_list —
Returns a list of errors from the last statement executed
MYSQLI_RESULT — THE MYSQLI_RESULT CLASS
 mysqli_result::$current_field — Get current field offset of a result
pointermysqli_result::data_seek — Adjusts the result pointer to an
arbitrary row in the resultmysqli_result::fetch_all — Fetches all
result rows as an associative array, a numeric array, or
bothmysqli_result::fetch_array — Fetch a result row as an
associative, a numeric array, or bothmysqli_result::fetch_assoc —
Fetch a result row as an associative
arraymysqli_result::fetch_field_direct — Fetch meta-data for a
single fieldmysqli_result::fetch_field — Returns the next field in
the result setmysqli_result::fetch_fields — Returns an array of
objects representing the fields in a result
setmysqli_result::fetch_object — Returns the current row of a
result set as an objectmysqli_result::fetch_row — Get a result row
as an enumerated array
MYSQLI_DRIVER, MYSQLI_WARNING
 mysqli_driver — The mysqli_driver
classmysqli_driver::embedded_server_end — Stop
embedded server
 mysqli_driver::embedded_server_start — Initialize
and start embedded server
 mysqli_driver::$report_mode — Enables or disables
internal report functions
 mysqli_warning — The mysqli_warning
classmysqli_warning::__construct — The __construct
purpose
 mysqli_warning::next — The next purpose
 mysqli_sql_exception — The mysqli_sql_exception
class
PDO — THE PDO CLASS
 PDO::beginTransaction — Initiates a
transactionPDO::commit — Commits a
transactionPDO::__construct — Creates a PDO
instance representing a connection to a
databasePDO::errorCode — Fetch the
SQLSTATE associated with the last operation
on the database handlePDO::errorInfo — Fetch
extended error information associated with the
last operation on the database
handlePDO::exec — Execute an SQL statement
and return the number of affected
rowsPDO::getAttribute — Retrieve a database
connection attribute
PDOSTATEMENT — THE PDOSTATEMENT CLASS
 PDOStatement::bindColumn — Bind a column to a PHP
variablePDOStatement::bindParam — Binds a parameter
to the specified variable namePDOStatement::bindValue
— Binds a value to a
parameterPDOStatement::closeCursor — Closes the
cursor, enabling the statement to be executed
again.PDOStatement::columnCount — Returns the
number of columns in the result
setPDOStatement::debugDumpParams — Dump an SQL
prepared commandPDOStatement::errorCode — Fetch
the SQLSTATE associated with the last operation on the
statement handlePDOStatement::errorInfo — Fetch
extended error information associated with the last
operation on the statement handle
PDOEXCEPTION, MISC
 PDOException — The PDOException class
 PDO DriversCUBRID (PDO) — CUBRID
Functions (PDO_CUBRID)
 MS SQL Server (PDO) — Microsoft SQL
Server and Sybase Functions (PDO_DBLIB)
 Firebird/Interbase (PDO) —
Firebird/Interbase Functions
(PDO_FIREBIRD)
 IBM (PDO) — IBM Functions (PDO_IBM)

More Related Content

What's hot (17)

Php mysql connectivity
Php mysql connectivityPhp mysql connectivity
Php mysql connectivity
abhikwb
 
PHP - Getting good with MySQL part II
 PHP - Getting good with MySQL part II PHP - Getting good with MySQL part II
PHP - Getting good with MySQL part II
Firdaus Adib
 
PHP with MySQL
PHP with MySQLPHP with MySQL
PHP with MySQL
wahidullah mudaser
 
Database presentation
Database presentationDatabase presentation
Database presentation
webhostingguy
 
Using php with my sql
Using php with my sqlUsing php with my sql
Using php with my sql
salissal
 
Php Data Objects
Php Data ObjectsPhp Data Objects
Php Data Objects
hiren.joshi
 
MySQL
MySQLMySQL
MySQL
Gouthaman V
 
Working with Databases and MySQL
Working with Databases and MySQLWorking with Databases and MySQL
Working with Databases and MySQL
Nicole Ryan
 
Mysql
MysqlMysql
Mysql
lotlot
 
lab56_db
lab56_dblab56_db
lab56_db
tutorialsruby
 
Sqlite perl
Sqlite perlSqlite perl
Sqlite perl
Ashoka Vanjare
 
Learn PHP Lacture2
Learn PHP Lacture2Learn PHP Lacture2
Learn PHP Lacture2
ADARSH BHATT
 
veracruz
veracruzveracruz
veracruz
tutorialsruby
 
Mysql & Php
Mysql & PhpMysql & Php
Mysql & Php
Inbal Geffen
 
9780538745840 ppt ch06
9780538745840 ppt ch069780538745840 ppt ch06
9780538745840 ppt ch06
Terry Yoast
 
Stored Procedure
Stored ProcedureStored Procedure
Stored Procedure
NidiaRamirez07
 
9780538745840 ppt ch08
9780538745840 ppt ch089780538745840 ppt ch08
9780538745840 ppt ch08
Terry Yoast
 

Viewers also liked (14)

Http only cookie
Http only cookieHttp only cookie
Http only cookie
fool2fish
 
Cookies and sessions
Cookies and sessionsCookies and sessions
Cookies and sessions
Sukrit Gupta
 
PHP - PDO Objects
PHP - PDO ObjectsPHP - PDO Objects
PHP - PDO Objects
AJINKYA N
 
Understanding Web Cache
Understanding Web CacheUnderstanding Web Cache
Understanding Web Cache
ProdigyView
 
Cookies & Session
Cookies & SessionCookies & Session
Cookies & Session
university of education,Lahore
 
Php 101: PDO
Php 101: PDOPhp 101: PDO
Php 101: PDO
Jeremy Kendall
 
PHP Cookies, Sessions and Authentication
PHP Cookies, Sessions and AuthenticationPHP Cookies, Sessions and Authentication
PHP Cookies, Sessions and Authentication
Gerard Sychay
 
Cookies and sessions
Cookies and sessionsCookies and sessions
Cookies and sessions
UdaAs PaNchi
 
Sessions and cookies
Sessions and cookiesSessions and cookies
Sessions and cookies
www.netgains.org
 
PHP Data Objects
PHP Data ObjectsPHP Data Objects
PHP Data Objects
Wez Furlong
 
Cookie and session
Cookie and sessionCookie and session
Cookie and session
Aashish Ghale
 
Cookies and sessions
Cookies and sessionsCookies and sessions
Cookies and sessions
Lena Petsenchuk
 
Slideshare.Com Powerpoint
Slideshare.Com PowerpointSlideshare.Com Powerpoint
Slideshare.Com Powerpoint
guested929b
 
Slideshare ppt
Slideshare pptSlideshare ppt
Slideshare ppt
Mandy Suzanne
 
Ad

Similar to Php and database functionality (20)

Php & my sql - how do pdo, mysq-li, and x devapi do what they do
Php & my sql  - how do pdo, mysq-li, and x devapi do what they doPhp & my sql  - how do pdo, mysq-li, and x devapi do what they do
Php & my sql - how do pdo, mysq-li, and x devapi do what they do
Dave Stokes
 
Db function
Db functionDb function
Db function
JIGAR MAKHIJA
 
Apis php-en sql .
Apis php-en sql .Apis php-en sql .
Apis php-en sql .
Vandan Kashyap
 
3-Chapter-Edit.pptx debre tabour university
3-Chapter-Edit.pptx debre tabour university3-Chapter-Edit.pptx debre tabour university
3-Chapter-Edit.pptx debre tabour university
alemunuruhak9
 
Ipc mysql php
Ipc mysql php Ipc mysql php
Ipc mysql php
Anis Berejeb
 
Php and MySQL Web Development
Php and MySQL Web DevelopmentPhp and MySQL Web Development
Php and MySQL Web Development
w3ondemand
 
Lect_04b_PhpMysqlKEY PERFORMANCE INDICATOR FOR ICT-UNIT (new).ppt
Lect_04b_PhpMysqlKEY PERFORMANCE INDICATOR FOR ICT-UNIT (new).pptLect_04b_PhpMysqlKEY PERFORMANCE INDICATOR FOR ICT-UNIT (new).ppt
Lect_04b_PhpMysqlKEY PERFORMANCE INDICATOR FOR ICT-UNIT (new).ppt
SenzotaSemakuwa
 
MySQL Record Operations
MySQL Record OperationsMySQL Record Operations
MySQL Record Operations
Jamshid Hashimi
 
php databse handling
php databse handlingphp databse handling
php databse handling
kunj desai
 
FYBSC IT Web Programming Unit V Advanced PHP and MySQL
FYBSC IT Web Programming Unit V  Advanced PHP and MySQLFYBSC IT Web Programming Unit V  Advanced PHP and MySQL
FYBSC IT Web Programming Unit V Advanced PHP and MySQL
Arti Parab Academics
 
100 PHP question and answer
100 PHP  question and answer100 PHP  question and answer
100 PHP question and answer
Sandip Murari
 
Web Application Development using PHP Chapter 7
Web Application Development using PHP Chapter 7Web Application Development using PHP Chapter 7
Web Application Development using PHP Chapter 7
Mohd Harris Ahmad Jaal
 
lecture 7 - Introduction to MySQL with PHP.pptx
lecture 7 - Introduction to  MySQL with PHP.pptxlecture 7 - Introduction to  MySQL with PHP.pptx
lecture 7 - Introduction to MySQL with PHP.pptx
AOmaAli
 
MySQLi
MySQLiMySQLi
MySQLi
Ankit Bahuguna
 
Connecting to my sql using PHP
Connecting to my sql using PHPConnecting to my sql using PHP
Connecting to my sql using PHP
Nisa Soomro
 
Php
PhpPhp
Php
khushbulakhani1
 
wee
weewee
wee
gapczar
 
Data types and variables in php for writing and databse
Data types and variables in php for writing  and databseData types and variables in php for writing  and databse
Data types and variables in php for writing and databse
vishal choudhary
 
7. PHP and gaghhgashgfsgajhfkhshfasMySQL.pptx
7. PHP and gaghhgashgfsgajhfkhshfasMySQL.pptx7. PHP and gaghhgashgfsgajhfkhshfasMySQL.pptx
7. PHP and gaghhgashgfsgajhfkhshfasMySQL.pptx
berihun18
 
Php summary
Php summaryPhp summary
Php summary
Michelle Darling
 
Php & my sql - how do pdo, mysq-li, and x devapi do what they do
Php & my sql  - how do pdo, mysq-li, and x devapi do what they doPhp & my sql  - how do pdo, mysq-li, and x devapi do what they do
Php & my sql - how do pdo, mysq-li, and x devapi do what they do
Dave Stokes
 
3-Chapter-Edit.pptx debre tabour university
3-Chapter-Edit.pptx debre tabour university3-Chapter-Edit.pptx debre tabour university
3-Chapter-Edit.pptx debre tabour university
alemunuruhak9
 
Php and MySQL Web Development
Php and MySQL Web DevelopmentPhp and MySQL Web Development
Php and MySQL Web Development
w3ondemand
 
Lect_04b_PhpMysqlKEY PERFORMANCE INDICATOR FOR ICT-UNIT (new).ppt
Lect_04b_PhpMysqlKEY PERFORMANCE INDICATOR FOR ICT-UNIT (new).pptLect_04b_PhpMysqlKEY PERFORMANCE INDICATOR FOR ICT-UNIT (new).ppt
Lect_04b_PhpMysqlKEY PERFORMANCE INDICATOR FOR ICT-UNIT (new).ppt
SenzotaSemakuwa
 
php databse handling
php databse handlingphp databse handling
php databse handling
kunj desai
 
FYBSC IT Web Programming Unit V Advanced PHP and MySQL
FYBSC IT Web Programming Unit V  Advanced PHP and MySQLFYBSC IT Web Programming Unit V  Advanced PHP and MySQL
FYBSC IT Web Programming Unit V Advanced PHP and MySQL
Arti Parab Academics
 
100 PHP question and answer
100 PHP  question and answer100 PHP  question and answer
100 PHP question and answer
Sandip Murari
 
Web Application Development using PHP Chapter 7
Web Application Development using PHP Chapter 7Web Application Development using PHP Chapter 7
Web Application Development using PHP Chapter 7
Mohd Harris Ahmad Jaal
 
lecture 7 - Introduction to MySQL with PHP.pptx
lecture 7 - Introduction to  MySQL with PHP.pptxlecture 7 - Introduction to  MySQL with PHP.pptx
lecture 7 - Introduction to MySQL with PHP.pptx
AOmaAli
 
Connecting to my sql using PHP
Connecting to my sql using PHPConnecting to my sql using PHP
Connecting to my sql using PHP
Nisa Soomro
 
Data types and variables in php for writing and databse
Data types and variables in php for writing  and databseData types and variables in php for writing  and databse
Data types and variables in php for writing and databse
vishal choudhary
 
7. PHP and gaghhgashgfsgajhfkhshfasMySQL.pptx
7. PHP and gaghhgashgfsgajhfkhshfasMySQL.pptx7. PHP and gaghhgashgfsgajhfkhshfasMySQL.pptx
7. PHP and gaghhgashgfsgajhfkhshfasMySQL.pptx
berihun18
 
Ad

More from Sayed Ahmed (20)

Workplace, Data Analytics, and Ethics
Workplace, Data Analytics, and EthicsWorkplace, Data Analytics, and Ethics
Workplace, Data Analytics, and Ethics
Sayed Ahmed
 
Python py charm anaconda jupyter installation and basic commands
Python py charm anaconda jupyter   installation and basic commandsPython py charm anaconda jupyter   installation and basic commands
Python py charm anaconda jupyter installation and basic commands
Sayed Ahmed
 
[not edited] Demo on mobile app development using ionic framework
[not edited] Demo on mobile app development using ionic framework[not edited] Demo on mobile app development using ionic framework
[not edited] Demo on mobile app development using ionic framework
Sayed Ahmed
 
Sap hana-ide-overview-nodev
Sap hana-ide-overview-nodevSap hana-ide-overview-nodev
Sap hana-ide-overview-nodev
Sayed Ahmed
 
Invest wisely
Invest wiselyInvest wisely
Invest wisely
Sayed Ahmed
 
Will be an introduction to
Will be an introduction toWill be an introduction to
Will be an introduction to
Sayed Ahmed
 
Whm and cpanel overview hosting control panel overview
Whm and cpanel overview   hosting control panel overviewWhm and cpanel overview   hosting control panel overview
Whm and cpanel overview hosting control panel overview
Sayed Ahmed
 
Web application development using zend framework
Web application development using zend frameworkWeb application development using zend framework
Web application development using zend framework
Sayed Ahmed
 
Web design and_html_part_3
Web design and_html_part_3Web design and_html_part_3
Web design and_html_part_3
Sayed Ahmed
 
Web design and_html_part_2
Web design and_html_part_2Web design and_html_part_2
Web design and_html_part_2
Sayed Ahmed
 
Web design and_html
Web design and_htmlWeb design and_html
Web design and_html
Sayed Ahmed
 
Visual studio ide shortcuts
Visual studio ide shortcutsVisual studio ide shortcuts
Visual studio ide shortcuts
Sayed Ahmed
 
Virtualization
VirtualizationVirtualization
Virtualization
Sayed Ahmed
 
User interfaces
User interfacesUser interfaces
User interfaces
Sayed Ahmed
 
Unreal
UnrealUnreal
Unreal
Sayed Ahmed
 
Unit tests in_symfony
Unit tests in_symfonyUnit tests in_symfony
Unit tests in_symfony
Sayed Ahmed
 
Telerik this is sayed
Telerik this is sayedTelerik this is sayed
Telerik this is sayed
Sayed Ahmed
 
System analysis and_design
System analysis and_designSystem analysis and_design
System analysis and_design
Sayed Ahmed
 
Symfony 2
Symfony 2Symfony 2
Symfony 2
Sayed Ahmed
 
Story telling and_narrative
Story telling and_narrativeStory telling and_narrative
Story telling and_narrative
Sayed Ahmed
 
Workplace, Data Analytics, and Ethics
Workplace, Data Analytics, and EthicsWorkplace, Data Analytics, and Ethics
Workplace, Data Analytics, and Ethics
Sayed Ahmed
 
Python py charm anaconda jupyter installation and basic commands
Python py charm anaconda jupyter   installation and basic commandsPython py charm anaconda jupyter   installation and basic commands
Python py charm anaconda jupyter installation and basic commands
Sayed Ahmed
 
[not edited] Demo on mobile app development using ionic framework
[not edited] Demo on mobile app development using ionic framework[not edited] Demo on mobile app development using ionic framework
[not edited] Demo on mobile app development using ionic framework
Sayed Ahmed
 
Sap hana-ide-overview-nodev
Sap hana-ide-overview-nodevSap hana-ide-overview-nodev
Sap hana-ide-overview-nodev
Sayed Ahmed
 
Will be an introduction to
Will be an introduction toWill be an introduction to
Will be an introduction to
Sayed Ahmed
 
Whm and cpanel overview hosting control panel overview
Whm and cpanel overview   hosting control panel overviewWhm and cpanel overview   hosting control panel overview
Whm and cpanel overview hosting control panel overview
Sayed Ahmed
 
Web application development using zend framework
Web application development using zend frameworkWeb application development using zend framework
Web application development using zend framework
Sayed Ahmed
 
Web design and_html_part_3
Web design and_html_part_3Web design and_html_part_3
Web design and_html_part_3
Sayed Ahmed
 
Web design and_html_part_2
Web design and_html_part_2Web design and_html_part_2
Web design and_html_part_2
Sayed Ahmed
 
Web design and_html
Web design and_htmlWeb design and_html
Web design and_html
Sayed Ahmed
 
Visual studio ide shortcuts
Visual studio ide shortcutsVisual studio ide shortcuts
Visual studio ide shortcuts
Sayed Ahmed
 
Unit tests in_symfony
Unit tests in_symfonyUnit tests in_symfony
Unit tests in_symfony
Sayed Ahmed
 
Telerik this is sayed
Telerik this is sayedTelerik this is sayed
Telerik this is sayed
Sayed Ahmed
 
System analysis and_design
System analysis and_designSystem analysis and_design
System analysis and_design
Sayed Ahmed
 
Story telling and_narrative
Story telling and_narrativeStory telling and_narrative
Story telling and_narrative
Sayed Ahmed
 

Recently uploaded (20)

National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
Safe Software
 
Floods in Valencia: Two FME-Powered Stories of Data Resilience
Floods in Valencia: Two FME-Powered Stories of Data ResilienceFloods in Valencia: Two FME-Powered Stories of Data Resilience
Floods in Valencia: Two FME-Powered Stories of Data Resilience
Safe Software
 
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Shashikant Jagtap
 
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdfcnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
AmirStern2
 
Domino IQ – What to Expect, First Steps and Use Cases
Domino IQ – What to Expect, First Steps and Use CasesDomino IQ – What to Expect, First Steps and Use Cases
Domino IQ – What to Expect, First Steps and Use Cases
panagenda
 
Trends Artificial Intelligence - Mary Meeker
Trends Artificial Intelligence - Mary MeekerTrends Artificial Intelligence - Mary Meeker
Trends Artificial Intelligence - Mary Meeker
Clive Dickens
 
TrustArc Webinar - 2025 Global Privacy Survey
TrustArc Webinar - 2025 Global Privacy SurveyTrustArc Webinar - 2025 Global Privacy Survey
TrustArc Webinar - 2025 Global Privacy Survey
TrustArc
 
Enabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FMEEnabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FME
Safe Software
 
Precisely Demo Showcase: Powering ServiceNow Discovery with Precisely Ironstr...
Precisely Demo Showcase: Powering ServiceNow Discovery with Precisely Ironstr...Precisely Demo Showcase: Powering ServiceNow Discovery with Precisely Ironstr...
Precisely Demo Showcase: Powering ServiceNow Discovery with Precisely Ironstr...
Precisely
 
The State of Web3 Industry- Industry Report
The State of Web3 Industry- Industry ReportThe State of Web3 Industry- Industry Report
The State of Web3 Industry- Industry Report
Liveplex
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdfCrypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
 
PyData - Graph Theory for Multi-Agent Integration
PyData - Graph Theory for Multi-Agent IntegrationPyData - Graph Theory for Multi-Agent Integration
PyData - Graph Theory for Multi-Agent Integration
barqawicloud
 
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdfBoosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
Alkin Tezuysal
 
Cisco ISE Performance, Scalability and Best Practices.pdf
Cisco ISE Performance, Scalability and Best Practices.pdfCisco ISE Performance, Scalability and Best Practices.pdf
Cisco ISE Performance, Scalability and Best Practices.pdf
superdpz
 
Introduction to Internet of things .ppt.
Introduction to Internet of things .ppt.Introduction to Internet of things .ppt.
Introduction to Internet of things .ppt.
hok12341073
 
Down the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training RoadblocksDown the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training Roadblocks
Rustici Software
 
Oracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI ProfessionalOracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI Professional
VICTOR MAESTRE RAMIREZ
 
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
Edge AI and Vision Alliance
 
How to Detect Outliers in IBM SPSS Statistics.pptx
How to Detect Outliers in IBM SPSS Statistics.pptxHow to Detect Outliers in IBM SPSS Statistics.pptx
How to Detect Outliers in IBM SPSS Statistics.pptx
Version 1 Analytics
 
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
Safe Software
 
Floods in Valencia: Two FME-Powered Stories of Data Resilience
Floods in Valencia: Two FME-Powered Stories of Data ResilienceFloods in Valencia: Two FME-Powered Stories of Data Resilience
Floods in Valencia: Two FME-Powered Stories of Data Resilience
Safe Software
 
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Shashikant Jagtap
 
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdfcnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
AmirStern2
 
Domino IQ – What to Expect, First Steps and Use Cases
Domino IQ – What to Expect, First Steps and Use CasesDomino IQ – What to Expect, First Steps and Use Cases
Domino IQ – What to Expect, First Steps and Use Cases
panagenda
 
Trends Artificial Intelligence - Mary Meeker
Trends Artificial Intelligence - Mary MeekerTrends Artificial Intelligence - Mary Meeker
Trends Artificial Intelligence - Mary Meeker
Clive Dickens
 
TrustArc Webinar - 2025 Global Privacy Survey
TrustArc Webinar - 2025 Global Privacy SurveyTrustArc Webinar - 2025 Global Privacy Survey
TrustArc Webinar - 2025 Global Privacy Survey
TrustArc
 
Enabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FMEEnabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FME
Safe Software
 
Precisely Demo Showcase: Powering ServiceNow Discovery with Precisely Ironstr...
Precisely Demo Showcase: Powering ServiceNow Discovery with Precisely Ironstr...Precisely Demo Showcase: Powering ServiceNow Discovery with Precisely Ironstr...
Precisely Demo Showcase: Powering ServiceNow Discovery with Precisely Ironstr...
Precisely
 
The State of Web3 Industry- Industry Report
The State of Web3 Industry- Industry ReportThe State of Web3 Industry- Industry Report
The State of Web3 Industry- Industry Report
Liveplex
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdfCrypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
 
PyData - Graph Theory for Multi-Agent Integration
PyData - Graph Theory for Multi-Agent IntegrationPyData - Graph Theory for Multi-Agent Integration
PyData - Graph Theory for Multi-Agent Integration
barqawicloud
 
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdfBoosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
Alkin Tezuysal
 
Cisco ISE Performance, Scalability and Best Practices.pdf
Cisco ISE Performance, Scalability and Best Practices.pdfCisco ISE Performance, Scalability and Best Practices.pdf
Cisco ISE Performance, Scalability and Best Practices.pdf
superdpz
 
Introduction to Internet of things .ppt.
Introduction to Internet of things .ppt.Introduction to Internet of things .ppt.
Introduction to Internet of things .ppt.
hok12341073
 
Down the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training RoadblocksDown the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training Roadblocks
Rustici Software
 
Oracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI ProfessionalOracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI Professional
VICTOR MAESTRE RAMIREZ
 
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
Edge AI and Vision Alliance
 
How to Detect Outliers in IBM SPSS Statistics.pptx
How to Detect Outliers in IBM SPSS Statistics.pptxHow to Detect Outliers in IBM SPSS Statistics.pptx
How to Detect Outliers in IBM SPSS Statistics.pptx
Version 1 Analytics
 

Php and database functionality

  • 1. PHP, PHP FRAMEWORKS AND DATABASE Sayed Ahmed Computer Engineering, BUET, Bangladesh MSC, Computer Science, U of Manitoba, Canada http://www.JustEtc.net http://sayed.justetc.net [email protected]
  • 2. TOPICS  Connection strategies  Configuration for connection in different frameworks  PHP and DB2, MSSQL Server  Common database oriented operations  Reference to DB oriented functions/classes
  • 3. CONNECTION  mysql_connect  mysqli_connect  PDO  PDO_ODBC  Connection from Frameworks  Code Igniter – configure for db connection  CakePHP - configure for db connection  Zend - configure for db connection
  • 4. PDO VS MYSQLI  Overall, PDO is a better choice than mysqli  However, if performance is the only issue that you care, and  mysql will be the backend database all the time,  you can use mysqli  Reference:  http://net.tutsplus.com/tutorials/php/pdo-vs- mysqli-which-should-you-use/
  • 5. MYSQL_CONNECT  mysql_connect  Opens a connection to a MySQL Server  Deprecated as of PHP 5.5.0, and will be removed in the future.  Instead use MySQLi or PDO_MySQL  mysql_connect examples
  • 8. MYSQLI_CONNECT — ALIAS OF MYSQLI::__CONSTRUCT()
  • 11. OBJECT ORIENTED STYLE CONNECTION WITH MYSQLI
  • 13. PDO CONNECTION WHEN PARAMETERS IN A FILE
  • 14. PDO USING PHP.INI CONFIGURATIONS
  • 15. CODE IGNITER DATABASE CONFIGURATION  application/config/database.php  $db['default']['hostname'] = "localhost"; $db['default']['username'] = "root"; $db['default']['password'] = ""; $db['default']['database'] = "database_name"; $db['default']['dbdriver'] = "mysql"; $db['default']['dbprefix'] = ""; $db['default']['pconnect'] = TRUE; $db['default']['db_debug'] = FALSE; $db['default']['cache_on'] = FALSE; $db['default']['cachedir'] = ""; $db['default']['char_set'] = "utf8"; $db['default']['dbcollat'] = "utf8_general_ci"; $db['default']['swap_pre'] = ""; $db['default']['autoinit'] = TRUE; $db['default']['stricton'] = FALSE;  Reference:  http://ellislab.com/codeigniter/user-guide/database/configuration.html
  • 16. CAKEPHP AND MYSQL  A copy of CakePHP’s database configuration file is found in  /app/Config/database.php.default  Make a copy of this file in the same directory, but name it  database.php  Change database.php as follows
  • 18. ZEND AND DATABASE CONFIGURATION  Zend_Config_Ini enables developers to store configuration data in a familiar INI format
  • 19. PDO AND PREPARED STATEMENTS
  • 20. PDO FETCH AND PREPARED STMT
  • 21. PDO AND STORED PROCEDURE (OUT PARAM)
  • 22. PDO STRD PROC WITH IN/OUT PARAMS
  • 23. MYSQLI AND STORED PROCEDURE
  • 24. MYSQLI FETCHING RESULTS FROM STORED PROCEDURES
  • 25. PHP FUNCTIONS FOR SQL SERVER  The name of the functions may closely resemble the functionality.  # mssql_ bind # mssql_ close # mssql_ connect # mssql_ data_ seek # mssql_ execute # mssql_ fetch_ array # mssql_ fetch_ assoc # mssql_ fetch_ batch # mssql_ fetch_ field # mssql_ fetch_ object # mssql_ fetch_ row # mssql_ field_ length # mssql_ field_ name # mssql_ field_ seek # mssql_ field_ type # mssql_ free_ result # mssql_ free_ statement
  • 26. PHP FUNCTIONS FOR SQL SERVER  # mssql_ get_ last_ message # mssql_ guid_ string # mssql_ init # mssql_ min_ error_ severity # mssql_ min_ message_ severity # mssql_ next_ result # mssql_ num_ fields # mssql_ num_ rows # mssql_ pconnect # mssql_ query # mssql_ result # mssql_ rows_ affected # mssql_ select_ db
  • 27. PHP AND IBM DB2  PHP has concepts like PDO and PDO_ODBC, and generic odbc features that will allow you to connect to and work with DB-2 databases. Generic odbc is the general/procedural way to connect to. PDO and PDO_ODBC are object oriented ways. PDO works with native IBM drivers. PDO_ODBC uses odbc connections to the DB2. For PHP you need to install drivers to support DB2. I worked with PDO_ODBC to connect to DB-2 databases in IBM iSeries servers. You need to install odbc db2 drivers for iseries servers. Then in /etc/odbcinst.ini file you need to mention driver specifications and in /etc/odbc.ini, you need to mention the odbc dsn name, database name, and some other parameters to connect to the database. Though, you may also supply some parameters in the PDO_ODBC connect method.
  • 28. PHP AND SQL SERVER STORED PROCEDURE
  • 29. PHP AND SQL SERVER STORED PROCEDURE
  • 33. MYSQLI — THE MYSQLI CLASS  mysqli::$affected_rows — Gets the number of affected rows in a previous MySQL operation  mysqli::autocommit — Turns on or off auto-committing database modifications  mysqli::begin_transaction — Starts a transaction  mysqli::change_user — Changes the user of the specified database connection  mysqli::character_set_name — Returns the default character set for the database connection  mysqli::$client_info — Get MySQL client info  mysqli::$client_version — Returns the MySQL client version as a stringmysqli::close — Closes a previously opened database connection
  • 34. MYSQLI — THE MYSQLI CLASS  mysqli::commit — Commits the current transaction  mysqli::$connect_errno — Returns the error code from last connect call  mysqli::$connect_error — Returns a string description of the last connect error  mysqli::__construct — Open a new connection to the MySQL server  mysqli::debug — Performs debugging operations  mysqli::dump_debug_info — Dump debugging information into the log  mysqli::$errno — Returns the error code for the most recent function call
  • 35. MYSQLI — THE MYSQLI CLASS  mysqli::$error_list — Returns a list of errors from the last command executed  mysqli::$error — Returns a string description of the last error  mysqli::$field_count — Returns the number of columns for the most recent query  mysqli::get_charset — Returns a character set objectmysqli::get_client_info — Get MySQL client info  mysqli_get_client_stats — Returns client per-process statistics  mysqli_get_client_version — Returns the MySQL client version as an integer  mysqli::get_connection_stats — Returns statistics about the client connection  mysqli::$host_info — Returns a string representing the type of connection used  mysqli::$protocol_version — Returns the version of the MySQL protocol used  mysqli::$server_info — Returns the version of the MySQL server  mysqli::$server_version — Returns the version of the MySQL server as an integer  mysqli::get_warnings — Get result of SHOW WARNINGS
  • 36. MYSQLI — THE MYSQLI CLASS  mysqli::$info — Retrieves information about the most recently executed querymysqli::init — Initializes MySQLi and returns a resource for use with mysqli_real_connect()mysqli::$insert_id — Returns the auto generated id used in the last querymysqli::kill — Asks the server to kill a MySQL threadmysqli::more_results — Check if there are any more query results from a multi querymysqli::multi_query — Performs a query on the databasemysqli::next_result — Prepare next result from multi_querymysqli::options — Set optionsmysqli::ping — Pings a server connection, or tries to reconnect if the connection has gone downmysqli::poll — Poll connectionsmysqli::prepare — Prepare an SQL statement for executionmysqli::query — Performs a query on the databasemysqli::real_connect — Opens a connection to a mysql servermysqli::real_escape_string — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connectionmysqli::real_query — Execute an SQL query
  • 37. MYSQLI_STMT — THE MYSQLI_STMT CLASS  mysqli_stmt::$affected_rows — Returns the total number of rows changed, deleted, or inserted by the last executed statementmysqli_stmt::attr_get — Used to get the current value of a statement attributemysqli_stmt::attr_set — Used to modify the behavior of a prepared statementmysqli_stmt::bind_param — Binds variables to a prepared statement as parametersmysqli_stmt::bind_result — Binds variables to a prepared statement for result storagemysqli_stmt::close — Closes a prepared statementmysqli_stmt::data_seek — Seeks to an arbitrary row in statement result setmysqli_stmt::$errno — Returns the error code for the most recent statement callmysqli_stmt::$error_list — Returns a list of errors from the last statement executed
  • 38. MYSQLI_RESULT — THE MYSQLI_RESULT CLASS  mysqli_result::$current_field — Get current field offset of a result pointermysqli_result::data_seek — Adjusts the result pointer to an arbitrary row in the resultmysqli_result::fetch_all — Fetches all result rows as an associative array, a numeric array, or bothmysqli_result::fetch_array — Fetch a result row as an associative, a numeric array, or bothmysqli_result::fetch_assoc — Fetch a result row as an associative arraymysqli_result::fetch_field_direct — Fetch meta-data for a single fieldmysqli_result::fetch_field — Returns the next field in the result setmysqli_result::fetch_fields — Returns an array of objects representing the fields in a result setmysqli_result::fetch_object — Returns the current row of a result set as an objectmysqli_result::fetch_row — Get a result row as an enumerated array
  • 39. MYSQLI_DRIVER, MYSQLI_WARNING  mysqli_driver — The mysqli_driver classmysqli_driver::embedded_server_end — Stop embedded server  mysqli_driver::embedded_server_start — Initialize and start embedded server  mysqli_driver::$report_mode — Enables or disables internal report functions  mysqli_warning — The mysqli_warning classmysqli_warning::__construct — The __construct purpose  mysqli_warning::next — The next purpose  mysqli_sql_exception — The mysqli_sql_exception class
  • 40. PDO — THE PDO CLASS  PDO::beginTransaction — Initiates a transactionPDO::commit — Commits a transactionPDO::__construct — Creates a PDO instance representing a connection to a databasePDO::errorCode — Fetch the SQLSTATE associated with the last operation on the database handlePDO::errorInfo — Fetch extended error information associated with the last operation on the database handlePDO::exec — Execute an SQL statement and return the number of affected rowsPDO::getAttribute — Retrieve a database connection attribute
  • 41. PDOSTATEMENT — THE PDOSTATEMENT CLASS  PDOStatement::bindColumn — Bind a column to a PHP variablePDOStatement::bindParam — Binds a parameter to the specified variable namePDOStatement::bindValue — Binds a value to a parameterPDOStatement::closeCursor — Closes the cursor, enabling the statement to be executed again.PDOStatement::columnCount — Returns the number of columns in the result setPDOStatement::debugDumpParams — Dump an SQL prepared commandPDOStatement::errorCode — Fetch the SQLSTATE associated with the last operation on the statement handlePDOStatement::errorInfo — Fetch extended error information associated with the last operation on the statement handle
  • 42. PDOEXCEPTION, MISC  PDOException — The PDOException class  PDO DriversCUBRID (PDO) — CUBRID Functions (PDO_CUBRID)  MS SQL Server (PDO) — Microsoft SQL Server and Sybase Functions (PDO_DBLIB)  Firebird/Interbase (PDO) — Firebird/Interbase Functions (PDO_FIREBIRD)  IBM (PDO) — IBM Functions (PDO_IBM)