Deprecated mysql_* Functions After PHP Upgrade: Resolution
After upgrading from PHP 5.2.0 to 5.5.0, issues may arise when attempting to use mysql_* functions. This is due to the deprecation of these functions.
Error Encountered: Deprecated mysql_real_escape_string()
To resolve this, replace mysql_real_escape_string() with its modernized counterpart: mysqli_real_escape_string().
Error Encountered: mysqli_real_escape_string() Expects 2 Parameters
When using mysqli_real_escape_string(), it requires two arguments: the connection variable and the string to be escaped.
Example Code with Modifications:
<?php $connection = mysqli_connect("host", "my_user", "my_password", "my_db"); $username = mysqli_real_escape_string($connection, $username); $password = mysqli_real_escape_string($connection, $password); $query = "SELECT * FROM login WHERE username = '{$username}' AND password = '{$password}' AND status=1";
Consider Using an Object-Oriented Approach
For increased maintainability, consider using a database object class, which encapsulates the connection details:
<?php class Database { private $connection; public function __construct($host, $user, $password, $database) { $this->connection = mysqli_connect($host, $user, $password, $database); } public function escape($string) { return mysqli_real_escape_string($this->connection, $string); } // Other database operations... }
Conclusion:
By following these guidelines, developers can successfully resolve the deprecation issues encountered with mysql_* functions after upgrading PHP.
The above is the detailed content of Why Are My mysql_* Functions Deprecated After Upgrading PHP?. For more information, please follow other related articles on the PHP Chinese website!