Inserting Blobs into MySQL Databases with PHP
To efficiently store binary data, such as images, in MySQL databases using PHP, it's crucial to avoid common pitfalls.
Pitfall: Attempting to insert a function call's result directly into a MySQL query.
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','file_get_contents($tmp_image)')";
Solution 1: Concatenate the function call's result explicitly.
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','" . file_get_contents($tmp_image) . "')";
Pitfall: Failing to sanitize binary data before inserting it into a query.
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','" . file_get_contents($tmp_image) . "')";
Solution 2: Escape the binary data using mysql_escape_string.
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','" . mysql_escape_string(file_get_contents($tmp_image)) . "')";
Pitfall: Storing large binary data directly in the database can bloat the database.
Solution 3: Consider alternative storage methods for binary data, such as file storage systems.
The above is the detailed content of How to Safely Insert Binary Data (Blobs) into MySQL Using PHP?. For more information, please follow other related articles on the PHP Chinese website!