The mysql_ functions provides a procedural interface to MySQL, and are adequate for many applications. However, they do not take advantage of the newer features to MySQL, including prepared statements and the multiple result sets from stored procedures. For new development, then, mysqli is the better choice. You can still choose whether to use it in a procedural or object-oriented manner. See http://dev.mysql.com/doc/refman/5.0/en/php.html for more details.
Also note that mysqlnd, a replacement for libmysql, is under development. This new library does not indicate changes to PHP scripts, which will continue to use mysqli functions. Rather, it is a new way for PHP to connect to MySQL "behind the scenes," and offers some performance improvements. See http://dev.mysql.com/downloads/connector/php-mysqlnd/ for more information.
Dig Deeper on Open source databases
Related Q&A from Scott Noyes
Get suggestions for choosing MySQL character sets and field collations from expert Scott Noyes.continue reading
A MySQL expert describes two ways that the multi-master support can be used.continue reading
An expert describes where to find information on detection deadlock algorithms in MySQL.continue reading
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.