Home  >  Article  >  Backend Development  >  How can I rewrite old MySQL-PHP code using deprecated `mysql_*` functions with modern prepared statements and PDO?

How can I rewrite old MySQL-PHP code using deprecated `mysql_*` functions with modern prepared statements and PDO?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-26 00:55:28210browse

How can I rewrite old MySQL-PHP code using deprecated `mysql_*` functions with modern prepared statements and PDO?

Rewriting Old MySQL-PHP Code with Deprecated mysql_* Functions

In this modern era of PHP development, it is imperative to stay up-to-date with best practices. One of the most pressing concerns is the deprecation of mysql_* functions in favor of more secure and stable prepared statements and PDO (PHP Data Objects).

If you find yourself in the unfortunate situation of working with legacy code that still utilizes mysql_* functions, fear not! Here's a step-by-step guide to help you navigate this transition successfully.

Converting Connection Parameters

Your initial configuration converts to PDO's connection string as follows:

<code class="php">// Old:  $db = new dbConn('127.0.0.1', 'root', 'pass', 'people', 'animals');
// New:  $db = new PDO('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');</code>

Removing Redundant Functions

Constructors (__construct) and destructors (__destruct) are no longer necessary with PDO. The connection is established automatically when instantiating the PDO object.

Refactoring Database Selection

The selectDb function is also made redundant. Database selection is incorporated into the PDO connection string.

Updated Class

The following code reflects the updated dbConn class:

<code class="php">class dbConn extends PDO
{
    public function __construct($dsn, $user, $password, $options = [])
    {
        parent::__construct($dsn, $user, $password, $options);
    }
}</code>

Extendability

If desired, you can extend from PDO to create your own custom database class. This allows for more flexibility and fluency in your code.

Example Usage

<code class="php">$db = new dbConn('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');

// Query using prepared statements
$statement = $db->prepare('SELECT * FROM users WHERE name = ?');
$statement->execute([$name]);</code>

Conclusion

Embracing PDO in your PHP code brings enhanced security, stability, and developer-friendliness. By following these steps, you can successfully rewrite old mysql_* code and elevate your PHP development practices.

The above is the detailed content of How can I rewrite old MySQL-PHP code using deprecated `mysql_*` functions with modern prepared statements and PDO?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn