What is difference between mysql and PHP

mysql and php database connection and mysql and php for beginners, what is mysql and php and mysql and php interview questions
Dr.ShaneMatts Profile Pic
Dr.ShaneMatts,United States,Teacher
Published Date:23-07-2017
Your Website URL(Optional)
Comment
MySQL and PHPAbstract This manual describes the PHP extensions and interfaces that can be used with MySQL. For legal information, see the Legal Notices. For help with using MySQL, please visit either the MySQL Forums or MySQL Mailing Lists, where you can discuss your issues with other MySQL users. For additional documentation on MySQL products, including translations of the documentation into other languages, and downloadable versions in variety of formats, including HTML and PDF formats, see the MySQL Documentation Library. Document generated on: 2017-07-18 (revision: 53008)Table of Contents Preface and Legal Notices ............................................................................................................... xiii 1 Introduction to the MySQL PHP API ................................................................................................ 1 2 Overview of the MySQL PHP drivers ............................................................................................... 3 2.1 Introduction .......................................................................................................................... 3 2.2 Terminology overview ........................................................................................................... 3 2.3 Choosing an API .................................................................................................................. 4 2.4 Choosing a library ................................................................................................................ 6 2.5 Concepts .............................................................................................................................. 7 2.5.1 Buffered and Unbuffered queries ................................................................................ 7 2.5.2 Character sets ........................................................................................................... 8 3 MySQL Improved Extension ........................................................................................................... 11 3.1 Overview ............................................................................................................................ 14 3.2 Quick start guide ................................................................................................................ 18 3.2.1 Dual procedural and object-oriented interface ............................................................ 18 3.2.2 Connections ............................................................................................................. 20 3.2.3 Executing statements ............................................................................................... 22 3.2.4 Prepared Statements ............................................................................................... 26 3.2.5 Stored Procedures ................................................................................................... 33 3.2.6 Multiple Statements ................................................................................................. 38 3.2.7 API support for transactions ..................................................................................... 39 3.2.8 Metadata ................................................................................................................. 40 3.3 Installing/Configuring ........................................................................................................... 42 3.3.1 Requirements .......................................................................................................... 42 3.3.2 Installation ............................................................................................................... 42 3.3.3 Runtime Configuration .............................................................................................. 44 3.3.4 Resource Types ...................................................................................................... 46 3.4 The mysqli Extension and Persistent Connections ................................................................ 46 3.5 Predefined Constants ......................................................................................................... 47 3.6 Notes ................................................................................................................................. 50 3.7 The MySQLi Extension Function Summary .......................................................................... 51 3.8 Examples ........................................................................................................................... 57 3.8.1 MySQLi extension basic examples ........................................................................... 57 3.9 The mysqli class ................................................................................................................ 59 3.9.1 mysqli::affected_rows , mysqli_affected_rows ......................................... 62 3.9.2 mysqli::autocommit, mysqli_autocommit ....................................................... 65 3.9.3 mysqli::begin_transaction, mysqli_begin_transaction ........................... 66 3.9.4 mysqli::change_user, mysqli_change_user ................................................... 68 3.9.5 mysqli::character_set_name , mysqli_character_set_name ....................... 71 3.9.6 mysqli::client_info, mysqli_get_client_info ......................................... 72 3.9.7 mysqli::client_version , mysqli_get_client_version ............................. 73 3.9.8 mysqli::close , mysqli_close ........................................................................... 74 3.9.9 mysqli::commit, mysqli_commit ....................................................................... 75 3.9.10 mysqli::connect_errno , mysqli_connect_errno ....................................... 77 3.9.11 mysqli::connect_error, mysqli_connect_error ....................................... 78 3.9.12 mysqli::__construct, mysqli_connect ......................................................... 80 3.9.13 mysqli::debug, mysqli_debug ......................................................................... 83 3.9.14 mysqli::dump_debug_info, mysqli_dump_debug_info .................................. 84 3.9.15 mysqli::errno , mysqli_errno ....................................................................... 85 3.9.16 mysqli::error_list, mysqli_error_list ................................................... 87 3.9.17 mysqli::error , mysqli_error ....................................................................... 88 3.9.18 mysqli::field_count , mysqli_field_count ............................................... 90 iiiMySQL and PHP 3.9.19 mysqli::get_charset , mysqli_get_charset ................................................. 92 3.9.20 mysqli::get_client_info , mysqli_get_client_info .................................. 93 3.9.21 mysqli_get_client_stats ............................................................................... 94 3.9.22 mysqli_get_client_version, mysqli::client_version ............................ 97 3.9.23 mysqli::get_connection_stats , mysqli_get_connection_stats .............. 97 3.9.24 mysqli::host_info, mysqli_get_host_info .............................................. 100 3.9.25 mysqli::protocol_version , mysqli_get_proto_info .............................. 102 3.9.26 mysqli::server_info , mysqli_get_server_info ...................................... 103 3.9.27 mysqli::server_version , mysqli_get_server_version .......................... 105 3.9.28 mysqli::get_warnings, mysqli_get_warnings ............................................ 106 3.9.29 mysqli::info, mysqli_info ......................................................................... 107 3.9.30 mysqli::init , mysqli_init ........................................................................... 108 3.9.31 mysqli::insert_id , mysqli_insert_id ...................................................... 109 3.9.32 mysqli::kill , mysqli_kill ........................................................................... 111 3.9.33 mysqli::more_results , mysqli_more_results ............................................ 113 3.9.34 mysqli::multi_query, mysqli_multi_query ................................................ 114 3.9.35 mysqli::next_result , mysqli_next_result ................................................ 116 3.9.36 mysqli::options, mysqli_options ............................................................... 117 3.9.37 mysqli::ping , mysqli_ping ........................................................................... 119 3.9.38 mysqli::poll, mysqli_poll ........................................................................... 120 3.9.39 mysqli::prepare , mysqli_prepare ............................................................... 122 3.9.40 mysqli::query , mysqli_query ....................................................................... 125 3.9.41 mysqli::real_connect, mysqli_real_connect ............................................ 128 3.9.42 mysqli::real_escape_string , mysqli_real_escape_string .................... 132 3.9.43 mysqli::real_query, mysqli_real_query .................................................... 134 3.9.44 mysqli::reap_async_query, mysqli_reap_async_query ............................ 135 3.9.45 mysqli::refresh , mysqli_refresh ............................................................... 135 3.9.46 mysqli::release_savepoint , mysqli_release_savepoint ........................ 136 3.9.47 mysqli::rollback , mysqli_rollback ........................................................... 137 3.9.48 mysqli::rpl_query_type , mysqli_rpl_query_type .................................... 139 3.9.49 mysqli::savepoint , mysqli_savepoint ........................................................ 140 3.9.50 mysqli::select_db , mysqli_select_db ........................................................ 141 3.9.51 mysqli::send_query, mysqli_send_query .................................................... 143 3.9.52 mysqli::set_charset , mysqli_set_charset ................................................ 143 3.9.53 mysqli::set_local_infile_default, mysqli_set_local_infile_default ........................................................................ 145 3.9.54 mysqli::set_local_infile_handler, mysqli_set_local_infile_handler ........................................................................ 146 3.9.55 mysqli::sqlstate , mysqli_sqlstate ......................................................... 148 3.9.56 mysqli::ssl_set , mysqli_ssl_set ............................................................... 150 3.9.57 mysqli::stat , mysqli_stat ........................................................................... 151 3.9.58 mysqli::stmt_init , mysqli_stmt_init ........................................................ 152 3.9.59 mysqli::store_result , mysqli_store_result ............................................ 153 3.9.60 mysqli::thread_id , mysqli_thread_id ...................................................... 154 3.9.61 mysqli::thread_safe, mysqli_thread_safe ................................................ 156 3.9.62 mysqli::use_result , mysqli_use_result .................................................... 157 3.9.63 mysqli::warning_count , mysqli_warning_count ...................................... 159 3.10 The mysqli_stmt class ..................................................................................................... 161 3.10.1 mysqli_stmt::affected_rows, mysqli_stmt_affected_rows .................. 162 3.10.2 mysqli_stmt::attr_get , mysqli_stmt_attr_get ........................................ 164 3.10.3 mysqli_stmt::attr_set, mysqli_stmt_attr_set ........................................ 165 3.10.4 mysqli_stmt::bind_param , mysqli_stmt_bind_param ................................ 166 3.10.5 mysqli_stmt::bind_result , mysqli_stmt_bind_result ............................ 169 3.10.6 mysqli_stmt::close , mysqli_stmt_close .................................................... 171 ivMySQL and PHP 3.10.7 mysqli_stmt::__construct ........................................................................... 172 3.10.8 mysqli_stmt::data_seek, mysqli_stmt_data_seek .................................... 173 3.10.9 mysqli_stmt::errno, mysqli_stmt_errno .................................................. 175 3.10.10 mysqli_stmt::error_list, mysqli_stmt_error_list ............................ 177 3.10.11 mysqli_stmt::error, mysqli_stmt_error ................................................ 179 3.10.12 mysqli_stmt::execute , mysqli_stmt_execute .......................................... 181 3.10.13 mysqli_stmt::fetch , mysqli_stmt_fetch .................................................. 184 3.10.14 mysqli_stmt::field_count , mysqli_stmt_field_count ........................ 186 3.10.15 mysqli_stmt::free_result, mysqli_stmt_free_result .......................... 186 3.10.16 mysqli_stmt::get_result , mysqli_stmt_get_result .............................. 187 3.10.17 mysqli_stmt::get_warnings , mysqli_stmt_get_warnings ...................... 189 3.10.18 mysqli_stmt::insert_id , mysqli_stmt_insert_id ................................ 190 3.10.19 mysqli_stmt::more_results , mysqli_stmt_more_results ...................... 190 3.10.20 mysqli_stmt::next_result , mysqli_stmt_next_result .......................... 191 3.10.21 mysqli_stmt::num_rows , mysqli_stmt_num_rows .................................... 192 3.10.22 mysqli_stmt::param_count , mysqli_stmt_param_count ........................ 194 3.10.23 mysqli_stmt::prepare , mysqli_stmt_prepare .......................................... 195 3.10.24 mysqli_stmt::reset , mysqli_stmt_reset .................................................. 198 3.10.25 mysqli_stmt::result_metadata , mysqli_stmt_result_metadata .......... 199 3.10.26 mysqli_stmt::send_long_data , mysqli_stmt_send_long_data .............. 201 3.10.27 mysqli_stmt::sqlstate , mysqli_stmt_sqlstate .................................... 202 3.10.28 mysqli_stmt::store_result , mysqli_stmt_store_result ...................... 205 3.11 The mysqli_result class ................................................................................................... 207 3.11.1 mysqli_result::current_field , mysqli_field_tell .............................. 208 3.11.2 mysqli_result::data_seek , mysqli_data_seek .......................................... 210 3.11.3 mysqli_result::fetch_all, mysqli_fetch_all .......................................... 212 3.11.4 mysqli_result::fetch_array, mysqli_fetch_array .................................. 213 3.11.5 mysqli_result::fetch_assoc, mysqli_fetch_assoc .................................. 216 3.11.6 mysqli_result::fetch_field_direct , mysqli_fetch_field_direct ...... 218 3.11.7 mysqli_result::fetch_field , mysqli_fetch_field .................................. 221 3.11.8 mysqli_result::fetch_fields , mysqli_fetch_fields .............................. 223 3.11.9 mysqli_result::fetch_object , mysqli_fetch_object .............................. 226 3.11.10 mysqli_result::fetch_row , mysqli_fetch_row ........................................ 229 3.11.11 mysqli_result::field_count , mysqli_num_fields ................................ 231 3.11.12 mysqli_result::field_seek , mysqli_field_seek .................................... 232 3.11.13 mysqli_result::free , mysqli_free_result .............................................. 234 3.11.14 mysqli_result::lengths, mysqli_fetch_lengths .................................. 235 3.11.15 mysqli_result::num_rows, mysqli_num_rows .......................................... 237 3.12 The mysqli_driver class ................................................................................................... 239 3.12.1 mysqli_driver::embedded_server_end , mysqli_embedded_server_end .. 240 3.12.2 mysqli_driver::embedded_server_start, mysqli_embedded_server_start .............................................................................. 240 3.12.3 mysqli_driver::report_mode , mysqli_report .......................................... 241 3.13 The mysqli_warning class ............................................................................................... 243 3.13.1 mysqli_warning::__construct ...................................................................... 244 3.13.2 mysqli_warning::next ................................................................................... 244 3.14 The mysqli_sql_exception class ....................................................................................... 244 3.15 Aliases and deprecated Mysqli Functions ......................................................................... 245 3.15.1 mysqli_bind_param ......................................................................................... 245 3.15.2 mysqli_bind_result ....................................................................................... 245 3.15.3 mysqli_client_encoding ............................................................................... 246 3.15.4 mysqli_connect ............................................................................................... 246 3.15.5 mysqli::disable_reads_from_master, mysqli_disable_reads_from_master ...................................................................... 247 vMySQL and PHP 3.15.6 mysqli_disable_rpl_parse ........................................................................... 247 3.15.7 mysqli_enable_reads_from_master .............................................................. 248 3.15.8 mysqli_enable_rpl_parse ............................................................................. 248 3.15.9 mysqli_escape_string ................................................................................... 248 3.15.10 mysqli_execute .............................................................................................. 249 3.15.11 mysqli_fetch .................................................................................................. 249 3.15.12 mysqli_get_cache_stats .............................................................................. 249 3.15.13 mysqli_get_links_stats .............................................................................. 250 3.15.14 mysqli_get_metadata .................................................................................... 250 3.15.15 mysqli_master_query .................................................................................... 251 3.15.16 mysqli_param_count ...................................................................................... 251 3.15.17 mysqli_report ................................................................................................ 252 3.15.18 mysqli_rpl_parse_enabled .......................................................................... 252 3.15.19 mysqli_rpl_probe .......................................................................................... 252 3.15.20 mysqli_send_long_data ................................................................................ 252 3.15.21 mysqli::set_opt , mysqli_set_opt .............................................................. 253 3.15.22 mysqli_slave_query ...................................................................................... 253 3.16 Changelog ...................................................................................................................... 253 4 MySQL Functions (PDO_MYSQL) ................................................................................................ 255 4.1 PDO_MYSQL DSN ............................................................................................................. 258 5 Original MySQL API .................................................................................................................... 261 5.1 Installing/Configuring ......................................................................................................... 262 5.1.1 Requirements ........................................................................................................ 262 5.1.2 Installation ............................................................................................................. 262 5.1.3 Runtime Configuration ............................................................................................ 264 5.1.4 Resource Types ..................................................................................................... 265 5.2 Changelog ........................................................................................................................ 265 5.3 Predefined Constants ........................................................................................................ 266 5.4 Examples ......................................................................................................................... 267 5.4.1 MySQL extension overview example ....................................................................... 267 5.5 MySQL Functions ............................................................................................................. 268 5.5.1 mysql_affected_rows ....................................................................................... 268 5.5.2 mysql_client_encoding ................................................................................... 270 5.5.3 mysql_close ....................................................................................................... 271 5.5.4 mysql_connect ................................................................................................... 272 5.5.5 mysql_create_db ............................................................................................... 275 5.5.6 mysql_data_seek ............................................................................................... 277 5.5.7 mysql_db_name ................................................................................................... 278 5.5.8 mysql_db_query ................................................................................................. 280 5.5.9 mysql_drop_db ................................................................................................... 281 5.5.10 mysql_errno ..................................................................................................... 283 5.5.11 mysql_error ..................................................................................................... 284 5.5.12 mysql_escape_string ..................................................................................... 285 5.5.13 mysql_fetch_array ......................................................................................... 287 5.5.14 mysql_fetch_assoc ......................................................................................... 289 5.5.15 mysql_fetch_field ......................................................................................... 291 5.5.16 mysql_fetch_lengths ..................................................................................... 293 5.5.17 mysql_fetch_object ....................................................................................... 294 5.5.18 mysql_fetch_row ............................................................................................. 296 5.5.19 mysql_field_flags ......................................................................................... 297 5.5.20 mysql_field_len ............................................................................................. 299 5.5.21 mysql_field_name ........................................................................................... 300 5.5.22 mysql_field_seek ........................................................................................... 301 5.5.23 mysql_field_table ......................................................................................... 302 viMySQL and PHP 5.5.24 mysql_field_type ........................................................................................... 303 5.5.25 mysql_free_result ......................................................................................... 305 5.5.26 mysql_get_client_info ................................................................................. 306 5.5.27 mysql_get_host_info ..................................................................................... 307 5.5.28 mysql_get_proto_info ................................................................................... 308 5.5.29 mysql_get_server_info ................................................................................. 309 5.5.30 mysql_info ....................................................................................................... 310 5.5.31 mysql_insert_id ............................................................................................. 312 5.5.32 mysql_list_dbs ............................................................................................... 313 5.5.33 mysql_list_fields ......................................................................................... 314 5.5.34 mysql_list_processes ................................................................................... 316 5.5.35 mysql_list_tables ......................................................................................... 317 5.5.36 mysql_num_fields ........................................................................................... 319 5.5.37 mysql_num_rows ............................................................................................... 320 5.5.38 mysql_pconnect ............................................................................................... 321 5.5.39 mysql_ping ....................................................................................................... 323 5.5.40 mysql_query ..................................................................................................... 324 5.5.41 mysql_real_escape_string ........................................................................... 326 5.5.42 mysql_result ................................................................................................... 329 5.5.43 mysql_select_db ............................................................................................. 331 5.5.44 mysql_set_charset ......................................................................................... 332 5.5.45 mysql_stat ....................................................................................................... 333 5.5.46 mysql_tablename ............................................................................................. 335 5.5.47 mysql_thread_id ............................................................................................. 336 5.5.48 mysql_unbuffered_query ............................................................................... 337 6 MySQL Native Driver ................................................................................................................... 339 6.1 Overview .......................................................................................................................... 339 6.2 Installation ........................................................................................................................ 340 6.3 Runtime Configuration ....................................................................................................... 341 6.4 Incompatibilities ................................................................................................................ 346 6.5 Persistent Connections ..................................................................................................... 346 6.6 Statistics ........................................................................................................................... 346 6.7 Notes ............................................................................................................................... 360 6.8 Memory management ....................................................................................................... 361 6.9 MySQL Native Driver Plugin API ....................................................................................... 362 6.9.1 A comparison of mysqlnd plugins with MySQL Proxy ............................................... 364 6.9.2 Obtaining the mysqlnd plugin API ........................................................................... 364 6.9.3 MySQL Native Driver Plugin Architecture ................................................................ 365 6.9.4 The mysqlnd plugin API ......................................................................................... 370 6.9.5 Getting started building a mysqlnd plugin ................................................................ 372 7 Mysqlnd replication and load balancing plugin .............................................................................. 377 7.1 Key Features .................................................................................................................... 378 7.2 Limitations ........................................................................................................................ 380 7.3 On the name .................................................................................................................... 380 7.4 Quickstart and Examples .................................................................................................. 380 7.4.1 Setup .................................................................................................................... 380 7.4.2 Running statements ............................................................................................... 383 7.4.3 Connection state .................................................................................................... 384 7.4.4 SQL Hints .............................................................................................................. 386 7.4.5 Local transactions .................................................................................................. 388 7.4.6 XA/Distributed Transactions .................................................................................... 391 7.4.7 Service level and consistency ................................................................................. 394 7.4.8 Global transaction IDs ............................................................................................ 398 7.4.9 Cache integration ................................................................................................... 404 viiMySQL and PHP 7.4.10 Failover ................................................................................................................ 407 7.4.11 Partitioning and Sharding ..................................................................................... 408 7.4.12 MySQL Fabric ...................................................................................................... 410 7.5 Concepts .......................................................................................................................... 411 7.5.1 Architecture ........................................................................................................... 411 7.5.2 Connection pooling and switching ........................................................................... 412 7.5.3 Local transaction handling ...................................................................................... 414 7.5.4 Error handling ........................................................................................................ 415 7.5.5 Transient errors ..................................................................................................... 418 7.5.6 Failover ................................................................................................................. 420 7.5.7 Load balancing ...................................................................................................... 421 7.5.8 Read-write splitting ................................................................................................. 422 7.5.9 Filter ...................................................................................................................... 422 7.5.10 Service level and consistency ............................................................................... 424 7.5.11 Global transaction IDs .......................................................................................... 426 7.5.12 Cache integration ................................................................................................. 428 7.5.13 Supported clusters ............................................................................................... 430 7.5.14 XA/Distributed transactions ................................................................................... 434 7.6 Installing/Configuring ......................................................................................................... 436 7.6.1 Requirements ........................................................................................................ 436 7.6.2 Installation ............................................................................................................. 437 7.6.3 Runtime Configuration ............................................................................................ 437 7.6.4 Plugin configuration file (=1.1.x) ............................................................................ 438 7.7 Predefined Constants ........................................................................................................ 496 7.8 Mysqlnd_ms Functions ...................................................................................................... 498 7.8.1 mysqlnd_ms_dump_servers ............................................................................... 498 7.8.2 mysqlnd_ms_fabric_select_global ............................................................... 500 7.8.3 mysqlnd_ms_fabric_select_shard ................................................................. 501 7.8.4 mysqlnd_ms_get_last_gtid ............................................................................. 501 7.8.5 mysqlnd_ms_get_last_used_connection ....................................................... 503 7.8.6 mysqlnd_ms_get_stats ..................................................................................... 504 7.8.7 mysqlnd_ms_match_wild ................................................................................... 510 7.8.8 mysqlnd_ms_query_is_select ......................................................................... 511 7.8.9 mysqlnd_ms_set_qos ......................................................................................... 513 7.8.10 mysqlnd_ms_set_user_pick_server .............................................................. 515 7.8.11 mysqlnd_ms_xa_begin ..................................................................................... 518 7.8.12 mysqlnd_ms_xa_commit ................................................................................... 519 7.8.13 mysqlnd_ms_xa_gc ........................................................................................... 520 7.8.14 mysqlnd_ms_xa_rollback ............................................................................... 521 7.9 Change History ................................................................................................................. 522 7.9.1 PECL/mysqlnd_ms 1.6 series ................................................................................. 522 7.9.2 PECL/mysqlnd_ms 1.5 series ................................................................................. 524 7.9.3 PECL/mysqlnd_ms 1.4 series ................................................................................. 526 7.9.4 PECL/mysqlnd_ms 1.3 series ................................................................................. 527 7.9.5 PECL/mysqlnd_ms 1.2 series ................................................................................. 527 7.9.6 PECL/mysqlnd_ms 1.1 series ................................................................................. 529 7.9.7 PECL/mysqlnd_ms 1.0 series ................................................................................. 530 8 Mysqlnd query result cache plugin ............................................................................................... 531 8.1 Key Features .................................................................................................................... 532 8.2 Limitations ........................................................................................................................ 532 8.3 On the name .................................................................................................................... 532 8.4 Quickstart and Examples .................................................................................................. 532 8.4.1 Architecture and Concepts ..................................................................................... 533 8.4.2 Setup .................................................................................................................... 534 viiiMySQL and PHP 8.4.3 Caching queries ..................................................................................................... 534 8.4.4 Setting the TTL ...................................................................................................... 539 8.4.5 Pattern based caching ........................................................................................... 541 8.4.6 Slam defense ........................................................................................................ 543 8.4.7 Finding cache candidates ....................................................................................... 543 8.4.8 Measuring cache efficiency ..................................................................................... 546 8.4.9 Beyond TTL: user-defined storage .......................................................................... 552 8.5 Installing/Configuring ......................................................................................................... 556 8.5.1 Requirements ........................................................................................................ 556 8.5.2 Installation ............................................................................................................. 556 8.5.3 Runtime Configuration ............................................................................................ 556 8.6 Predefined Constants ........................................................................................................ 558 8.7 mysqlnd_qc Functions ....................................................................................................... 560 8.7.1 mysqlnd_qc_clear_cache ................................................................................. 560 8.7.2 mysqlnd_qc_get_available_handlers ........................................................... 561 8.7.3 mysqlnd_qc_get_cache_info ........................................................................... 562 8.7.4 mysqlnd_qc_get_core_stats ........................................................................... 568 8.7.5 mysqlnd_qc_get_normalized_query_trace_log ........................................... 573 8.7.6 mysqlnd_qc_get_query_trace_log ................................................................. 576 8.7.7 mysqlnd_qc_set_cache_condition ................................................................. 580 8.7.8 mysqlnd_qc_set_is_select ............................................................................. 581 8.7.9 mysqlnd_qc_set_storage_handler ................................................................. 583 8.7.10 mysqlnd_qc_set_user_handlers .................................................................... 584 8.8 Change History ................................................................................................................. 585 8.8.1 PECL/mysqlnd_qc 1.2 series .................................................................................. 585 8.8.2 PECL/mysqlnd_qc 1.1 series .................................................................................. 585 8.8.3 PECL/mysqlnd_qc 1.0 series .................................................................................. 586 9 Mysqlnd user handler plugin ........................................................................................................ 589 9.1 Security considerations ..................................................................................................... 591 9.2 Documentation note .......................................................................................................... 591 9.3 On the name .................................................................................................................... 591 9.4 Quickstart and Examples .................................................................................................. 591 9.4.1 Setup .................................................................................................................... 592 9.4.2 How it works .......................................................................................................... 592 9.4.3 Installing a proxy .................................................................................................... 593 9.4.4 Basic query monitoring ........................................................................................... 595 9.5 Installing/Configuring ......................................................................................................... 596 9.5.1 Requirements ........................................................................................................ 597 9.5.2 Installation ............................................................................................................. 597 9.5.3 Runtime Configuration ............................................................................................ 597 9.5.4 Resource Types ..................................................................................................... 597 9.6 Predefined Constants ........................................................................................................ 597 9.7 The MysqlndUhConnection class ....................................................................................... 603 9.7.1 MysqlndUhConnection::changeUser ............................................................... 606 9.7.2 MysqlndUhConnection::charsetName ............................................................. 607 9.7.3 MysqlndUhConnection::close ......................................................................... 608 9.7.4 MysqlndUhConnection::connect ..................................................................... 610 9.7.5 MysqlndUhConnection::__construct ............................................................. 611 9.7.6 MysqlndUhConnection::endPSession ............................................................. 612 9.7.7 MysqlndUhConnection::escapeString ........................................................... 613 9.7.8 MysqlndUhConnection::getAffectedRows ..................................................... 614 9.7.9 MysqlndUhConnection::getErrorNumber ....................................................... 615 9.7.10 MysqlndUhConnection::getErrorString ...................................................... 616 9.7.11 MysqlndUhConnection::getFieldCount ........................................................ 617 ixMySQL and PHP 9.7.12 MysqlndUhConnection::getHostInformation .............................................. 618 9.7.13 MysqlndUhConnection::getLastInsertId .................................................... 619 9.7.14 MysqlndUhConnection::getLastMessage ...................................................... 621 9.7.15 MysqlndUhConnection::getProtocolInformation ...................................... 622 9.7.16 MysqlndUhConnection::getServerInformation .......................................... 623 9.7.17 MysqlndUhConnection::getServerStatistics ............................................ 624 9.7.18 MysqlndUhConnection::getServerVersion .................................................. 625 9.7.19 MysqlndUhConnection::getSqlstate ............................................................ 626 9.7.20 MysqlndUhConnection::getStatistics ........................................................ 627 9.7.21 MysqlndUhConnection::getThreadId ............................................................ 635 9.7.22 MysqlndUhConnection::getWarningCount .................................................... 636 9.7.23 MysqlndUhConnection::init ......................................................................... 637 9.7.24 MysqlndUhConnection::killConnection ...................................................... 638 9.7.25 MysqlndUhConnection::listFields .............................................................. 639 9.7.26 MysqlndUhConnection::listMethod .............................................................. 640 9.7.27 MysqlndUhConnection::moreResults ............................................................ 642 9.7.28 MysqlndUhConnection::nextResult .............................................................. 643 9.7.29 MysqlndUhConnection::ping ......................................................................... 645 9.7.30 MysqlndUhConnection::query ....................................................................... 646 9.7.31 MysqlndUhConnection::queryReadResultsetHeader .................................. 647 9.7.32 MysqlndUhConnection::reapQuery ................................................................ 648 9.7.33 MysqlndUhConnection::refreshServer ........................................................ 650 9.7.34 MysqlndUhConnection::restartPSession .................................................... 651 9.7.35 MysqlndUhConnection::selectDb .................................................................. 652 9.7.36 MysqlndUhConnection::sendClose ................................................................ 653 9.7.37 MysqlndUhConnection::sendQuery ................................................................ 654 9.7.38 MysqlndUhConnection::serverDumpDebugInformation .............................. 655 9.7.39 MysqlndUhConnection::setAutocommit ........................................................ 656 9.7.40 MysqlndUhConnection::setCharset .............................................................. 657 9.7.41 MysqlndUhConnection::setClientOption .................................................... 658 9.7.42 MysqlndUhConnection::setServerOption .................................................... 660 9.7.43 MysqlndUhConnection::shutdownServer ...................................................... 661 9.7.44 MysqlndUhConnection::simpleCommand ........................................................ 662 9.7.45 MysqlndUhConnection::simpleCommandHandleResponse ............................ 664 9.7.46 MysqlndUhConnection::sslSet ...................................................................... 666 9.7.47 MysqlndUhConnection::stmtInit .................................................................. 668 9.7.48 MysqlndUhConnection::storeResult ............................................................ 669 9.7.49 MysqlndUhConnection::txCommit .................................................................. 670 9.7.50 MysqlndUhConnection::txRollback .............................................................. 671 9.7.51 MysqlndUhConnection::useResult ................................................................ 672 9.8 The MysqlndUhPreparedStatement class ........................................................................... 673 9.8.1 MysqlndUhPreparedStatement::__construct ............................................... 674 9.8.2 MysqlndUhPreparedStatement::execute ....................................................... 674 9.8.3 MysqlndUhPreparedStatement::prepare ....................................................... 675 9.9 Mysqlnd_uh Functions ...................................................................................................... 676 9.9.1 mysqlnd_uh_convert_to_mysqlnd ................................................................... 676 9.9.2 mysqlnd_uh_set_connection_proxy ............................................................... 678 9.9.3 mysqlnd_uh_set_statement_proxy ................................................................. 679 9.10 Change History ............................................................................................................... 680 9.10.1 PECL/mysqlnd_uh 1.0 series ................................................................................ 680 10 Mysqlnd connection multiplexing plugin ...................................................................................... 681 10.1 Key Features .................................................................................................................. 681 10.2 Limitations ...................................................................................................................... 682 10.3 About the name mysqlnd_mux ........................................................................................ 682 xMySQL and PHP 10.4 Concepts ........................................................................................................................ 682 10.4.1 Architecture .......................................................................................................... 682 10.4.2 Connection pool ................................................................................................... 683 10.4.3 Sharing connections ............................................................................................. 683 10.5 Installing/Configuring ....................................................................................................... 683 10.5.1 Requirements ....................................................................................................... 683 10.5.2 Installation ........................................................................................................... 684 10.5.3 Runtime Configuration .......................................................................................... 684 10.6 Predefined Constants ...................................................................................................... 684 10.7 Change History ............................................................................................................... 685 10.7.1 PECL/mysqlnd_mux 1.0 series ............................................................................. 685 11 Mysqlnd Memcache plugin ......................................................................................................... 687 11.1 Key Features .................................................................................................................. 688 11.2 Limitations ...................................................................................................................... 688 11.3 On the name .................................................................................................................. 688 11.4 Quickstart and Examples ................................................................................................. 688 11.4.1 Setup ................................................................................................................... 689 11.4.2 Usage .................................................................................................................. 690 11.5 Installing/Configuring ....................................................................................................... 691 11.5.1 Requirements ....................................................................................................... 691 11.5.2 Installation ........................................................................................................... 691 11.5.3 Runtime Configuration .......................................................................................... 691 11.6 Predefined Constants ...................................................................................................... 692 11.7 Mysqlnd_memcache Functions ........................................................................................ 692 11.7.1 mysqlnd_memcache_get_config ...................................................................... 692 11.7.2 mysqlnd_memcache_set ................................................................................... 695 11.8 Change History ............................................................................................................... 697 11.8.1 PECL/mysqlnd_memcache 1.0 series ................................................................... 697 12 Common Problems with MySQL and PHP .................................................................................. 699 xixiiPreface and Legal Notices This manual describes the PHP extensions and interfaces that can be used with MySQL. Legal Notices Copyright © 1997, 2017, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency- specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government. This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group. This software or hardware and documentation may provide access to or information about content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services, except as set forth in an applicable agreement between you and Oracle. This documentation is NOT distributed under a GPL license. Use of this documentation is subject to the following terms: xiiiLegal Notices You may create a printed copy of this documentation solely for your own personal use. Conversion to other formats is allowed as long as the actual content is not altered or edited in any way. You shall not publish or distribute this documentation in any form or on any media, except if you distribute the documentation in a manner similar to how Oracle disseminates it (that is, electronically for download on a Web site with the software) or on a CD-ROM or similar medium, provided however that the documentation is disseminated together with the software on the same medium. Any other use, such as any dissemination of printed copies or use of this documentation, in whole or in part, in another publication, requires the prior written consent from an authorized representative of Oracle. Oracle and/or its affiliates reserve any and all rights to this documentation not expressly granted above. xivChapter 1 Introduction to the MySQL PHP API PHP is a server-side, HTML-embedded scripting language that may be used to create dynamic Web pages. It is available for most operating systems and Web servers, and can access most common databases, including MySQL. PHP may be run as a separate program or compiled as a module for use with a Web server. PHP provides three different MySQL API extensions: • Chapter 3, MySQL Improved Extension: Stands for “MySQL, Improved”; this extension is available as of PHP 5.0.0. It is intended for use with MySQL 4.1.1 and later. This extension fully supports the authentication protocol used in MySQL 5.0, as well as the Prepared Statements and Multiple Statements APIs. In addition, this extension provides an advanced, object-oriented programming interface. • Chapter 4, MySQL Functions (PDO_MYSQL): Not its own API, but instead it's a MySQL driver for the PHP database abstraction layer PDO (PHP Data Objects). The PDO MySQL driver sits in the layer below PDO itself, and provides MySQL-specific functionality. This extension is available as of PHP 5.1.0. • Chapter 5, Original MySQL API: Available for PHP versions 4 and 5, this extension is intended for use with MySQL versions prior to MySQL 4.1. This extension does not support the improved authentication protocol used in MySQL 4.1, nor does it support prepared statements or multiple statements. To use this extension with MySQL 4.1, you will likely configure the MySQL server to set the old_passwords system variable to 1 (see Client does not support authentication protocol). Warning This extension was removed from PHP 5.5.0. All users must migrate to either mysqli or PDO_MySQL. For further information, see Section 2.3, “Choosing an API”. Note This documentation, and other publications, sometimes uses the term Connector/ PHP. This term refers to the full set of MySQL related functionality in PHP, which includes the three APIs that are described in the preceding discussion, along with the mysqlnd core library and all of its plugins. The PHP distribution and documentation are available from the PHP Web site. Portions of this section are Copyright (c) 1997-2015 the PHP Documentation Group This material may be distributed only subject to the terms and conditions set forth in the Creative Commons Attribution 3.0 License or later. A copy of the Creative Commons Attribution 3.0 license is distributed with this manual. The latest version is presently available at http://creativecommons.org/licenses/by/3.0/. 12Chapter 2 Overview of the MySQL PHP drivers Table of Contents 2.1 Introduction .................................................................................................................................. 3 2.2 Terminology overview ................................................................................................................... 3 2.3 Choosing an API .......................................................................................................................... 4 2.4 Choosing a library ........................................................................................................................ 6 2.5 Concepts ...................................................................................................................................... 7 2.5.1 Buffered and Unbuffered queries ........................................................................................ 7 2.5.2 Character sets ................................................................................................................... 8 Copyright 1997-2014 the PHP Documentation Group. 2.1 Introduction Depending on the version of PHP, there are either two or three PHP APIs for accessing the MySQL database. PHP 5 users can choose between the deprecated mysql extension, mysqli, or PDO_MySQL. PHP 7 removes the mysql extension, leaving only the latter two options. This guide explains the terminology used to describe each API, information about choosing which API to use, and also information to help choose which MySQL library to use with the API. 2.2 Terminology overview Copyright 1997-2014 the PHP Documentation Group. This section provides an introduction to the options available to you when developing a PHP application that needs to interact with a MySQL database. What is an API? An Application Programming Interface, or API, defines the classes, methods, functions and variables that your application will need to call in order to carry out its desired task. In the case of PHP applications that need to communicate with databases the necessary APIs are usually exposed via PHP extensions. APIs can be procedural or object-oriented. With a procedural API you call functions to carry out tasks, with the object-oriented API you instantiate classes and then call methods on the resulting objects. Of the two the latter is usually the preferred interface, as it is more modern and leads to better organized code. When writing PHP applications that need to connect to the MySQL server there are several API options available. This document discusses what is available and how to select the best solution for your application. What is a Connector? In the MySQL documentation, the term connector refers to a piece of software that allows your application to connect to the MySQL database server. MySQL provides connectors for a variety of languages, including PHP. If your PHP application needs to communicate with a database server you will need to write PHP code to perform such activities as connecting to the database server, querying the database and other database- related functions. Software is required to provide the API that your PHP application will use, and also handle the communication between your application and the database server, possibly using other 3Choosing an API intermediate libraries where necessary. This software is known generically as a connector, as it allows your application to connect to a database server. What is a Driver? A driver is a piece of software designed to communicate with a specific type of database server. The driver may also call a library, such as the MySQL Client Library or the MySQL Native Driver. These libraries implement the low-level protocol used to communicate with the MySQL database server. By way of an example, the PHP Data Objects (PDO) database abstraction layer may use one of several database-specific drivers. One of the drivers it has available is the PDO MYSQL driver, which allows it to interface with the MySQL server. Sometimes people use the terms connector and driver interchangeably, this can be confusing. In the MySQL-related documentation the term “driver” is reserved for software that provides the database-specific part of a connector package. What is an Extension? In the PHP documentation you will come across another term - extension. The PHP code consists of a core, with optional extensions to the core functionality. PHP's MySQL-related extensions, such as the mysqli extension, and the mysql extension, are implemented using the PHP extension framework. An extension typically exposes an API to the PHP programmer, to allow its facilities to be used programmatically. However, some extensions which use the PHP extension framework do not expose an API to the PHP programmer. The PDO MySQL driver extension, for example, does not expose an API to the PHP programmer, but provides an interface to the PDO layer above it. The terms API and extension should not be taken to mean the same thing, as an extension may not necessarily expose an API to the programmer. 2.3 Choosing an API Copyright 1997-2014 the PHP Documentation Group. PHP offers three different APIs to connect to MySQL. Below we show the APIs provided by the mysql, mysqli, and PDO extensions. Each code snippet creates a connection to a MySQL server running on "example.com" using the username "user" and the password "password". And a query is run to greet the user. Example 2.1 Comparing the three MySQL APIs ?php // mysqli mysqli = new mysqli("example.com", "user", "password", "database"); result = mysqli-query("SELECT 'Hello, dear MySQL user' AS _message FROM DUAL"); row = result-fetch_assoc(); echo htmlentities(row'_message'); // PDO pdo = new PDO('mysql:host=example.com;dbname=database', 'user', 'password'); statement = pdo-query("SELECT 'Hello, dear MySQL user' AS _message FROM DUAL"); row = statement-fetch(PDO::FETCH_ASSOC); echo htmlentities(row'_message'); // mysql c = mysql_connect("example.com", "user", "password"); 4Choosing an API mysql_select_db("database"); result = mysql_query("SELECT 'Hello, dear MySQL user' AS _message FROM DUAL"); row = mysql_fetch_assoc(result); echo htmlentities(row'_message'); ? Recommended API It is recommended to use either the mysqli or PDO_MySQL extensions. It is not recommended to use the old mysql extension for new development, as it was deprecated in PHP 5.5.0 and was removed in PHP 7. A detailed feature comparison matrix is provided below. The overall performance of all three extensions is considered to be about the same. Although the performance of the extension contributes only a fraction of the total run time of a PHP web request. Often, the impact is as low as 0.1%. Feature comparison ext/mysqli PDO_MySQL ext/mysql PHP version introduced 5.0 5.1 2.0 Included with PHP 5.x Yes Yes Yes Included with PHP 7.x Yes Yes No Development status Active Active Maintenance only in 5.x; removed in 7.x Lifecycle Active Active Deprecated in 5.x; removed in 7.x Recommended for new Yes Yes No projects OOP Interface Yes Yes No Procedural Interface Yes No Yes API supports non- Yes No No blocking, asynchronous queries with mysqlnd Persistent Connections Yes Yes Yes API supports Charsets Yes Yes Yes API supports server-side Yes Yes No Prepared Statements API supports client-side No Yes No Prepared Statements API supports Stored Yes Yes No Procedures API supports Multiple Yes Most No Statements API supports Yes Yes No Transactions Transactions can be Yes Yes Yes controlled with SQL Supports all MySQL 5.1+ Yes Most No functionality 5Choosing a library 2.4 Choosing a library Copyright 1997-2014 the PHP Documentation Group. The mysqli, PDO_MySQL and mysql PHP extensions are lightweight wrappers on top of a C client library. The extensions can either use the mysqlnd library or the libmysqlclient library. Choosing a library is a compile time decision. The mysqlnd library is part of the PHP distribution since 5.3.0. It offers features like lazy connections and query caching, features that are not available with libmysqlclient, so using the built-in mysqlnd library is highly recommended. See the mysqlnd documentation for additional details, and a listing of features and functionality that it offers. Example 2.2 Configure commands for using mysqlnd or libmysqlclient // Recommended, compiles with mysqlnd ./configure with-mysqli=mysqlnd with-pdo-mysql=mysqlnd with-mysql=mysqlnd // Alternatively recommended, compiles with mysqlnd as of PHP 5.4 ./configure with-mysqli with-pdo-mysql with-mysql // Not recommended, compiles with libmysqlclient ./configure with-mysqli=/path/to/mysql_config with-pdo-mysql=/path/to/mysql_config with-mysql=/path/to/mysql_config Library feature comparison It is recommended to use the mysqlnd library instead of the MySQL Client Server library (libmysqlclient). Both libraries are supported and constantly being improved. MySQL native driver (mysqlnd) MySQL client server library (libmysqlclient) Part of the PHP distribution Yes No PHP version introduced 5.3.0 N/A License PHP License 3.01 Dual-License Development status Active Active Lifecycle No end announced No end announced PHP 5.4 and above; compile Yes No default (for all MySQL extensions) PHP 5.3; compile default (for all No Yes MySQL extensions) Compression protocol support Yes (5.3.1+) Yes SSL support Yes (5.3.3+) Yes Named pipe support Yes (5.3.4+) Yes Non-blocking, asynchronous Yes No queries Performance statistics Yes No LOAD LOCAL INFILE respects Yes No the open_basedir directive 6

Advise: Why You Wasting Money in Costly SEO Tools, Use World's Best Free SEO Tool Ubersuggest.