Table of Contents
Solution to the failure of PHP to save images into mysql database,
Home Backend Development PHP Tutorial Solution to PHP failure to save images into mysql database, _PHP tutorial

Solution to PHP failure to save images into mysql database, _PHP tutorial

Jul 13, 2016 am 10:10 AM
mysql php picture Solution

Solution to the failure of PHP to save images into mysql database,

The example of this article analyzes the solution to the failure of PHP to save pictures into the MySQL database. Share it with everyone for your reference. The specific analysis is as follows:

It is not a wise idea to save pictures in the database. Most of us save the pictures to the server, and then save the picture address to the database. In this way, we only need to read the picture address every time to display it, but I will introduce it below. The solution to the problem of saving a picture to mysql database, the code is as follows:

Copy code The code is as follows:
require 'class/db.php';
$fileName = "a1.jpg";
$fp = fopen($fileName, "r");
$img = fread($fp, filesize($fileName));
fclose($fp);

$db->execute("insert db2.testimg (`img`) values ​​('$img') ;");

Error report:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`?绶q?仳!??? ?1丶> ,Mo?'^ W Z4in??T春??????U? 湹?' at line 1

The code is as follows:

Copy code The code is as follows:
$img = fread($fp, filesize($fileName));
$img = addslashes($img)

Continuing to report errors, various searches, the results in Baidu are all addslashes, or there are no addslashes at all, it is really nonsense.

Copy code The code is as follows:
base64_decode
$img = base64_encode($img);

The insertion is successful, the image file is 17.0k, come out and perform base64_decode, the display is normal, I found a hexadecimal method:

Copy code The code is as follows:
$img = bin2hex($img);

It works, the output does not need to be decrypted, and the database is 25K large, which is even more embarrassing than base64. I searched again, and later, I found that the image file uploaded directly by phpmyadmin can be used. The file is smaller than base64, the file is 12.8k.

Looking through the phpmyadmin source code, common.lib.php file 183 has a magical function, the code is as follows:

Copy code The code is as follows:
function PMA_sqlAddslashes($a_string = '', $is_like = false, $crlf = false, $php_code = false)
{
If ($is_like) {
          $a_string = str_replace('', '\\', $a_string);
} else {
          $a_string = str_replace('', '\', $a_string);
}

If ($crlf) {
         $a_string = str_replace("n", 'n', $a_string);
         $a_string = str_replace("r", 'r', $a_string);
          $a_string = str_replace("t", 't', $a_string);
}

If ($php_code) {
          $a_string = str_replace(''', ''', $a_string);
} else {
          $a_string = str_replace(''', '''', $a_string);
}

Return $a_string;
} // end of the 'PMA_sqlAddslashes()' function$img = PMA_sqlAddslashes($img);

The file size is 12.8K, which is the same size as phpmyadmin.

For example, frontend image.html, the code is as follows:

Copy code The code is as follows:


Upload picture





File:




The background processing upimage.php code is as follows:
Copy code The code is as follows:
//Insert pictures into the database
$imgfile=$_FILES['imgfile'];
$submitbtn=$_POST['submitbtn'];
if($submitbtn=='OK' and is_array($imgfile)){
$name=$imgfile['name']; //Get the image name
$type=$imgfile['type']; //Get the image type
$size=$imgfile['size']; //Get the image length
$tmpfile=$imgfile['tmp_name']; //The path to the temporary file where the image is uploaded
if($tmpfile and is_uploaded_file($tmpfile)){ //Determine whether the uploaded file is empty and whether the file is an uploaded file
//Read image stream
$file=fopen($tmpfile,"rb");
$imgdata=bin2hex(fread($file,$size)); //bin2hex() converts binary data into hexadecimal representation
fclose($file);

$mysqli=mysql_connect("localhost","root","123456″); //Connect database function
mysql_select_db("test"); //Select database
//Insert the database statement, add 0x before the image data, used to represent hexadecimal numbers
if(mysql_query("insert into images(name,type,image) values('".$name."','".$type."',0x".$imgdata.")"))
echo "
Inserted successfully!

Display image
";
else
echo "
Insertion failed!
";
mysql_close();
}else
echo "
Please select an image first!

Click here to return
";
} else
echo "
Please select an image first!

Click here to return
";
?>

Display the image disimage.php, the code is as follows:
Copy code The code is as follows:
mysql_connect("localhost","root","123456″);
mysql_select_db("test");
//Show the latest inserted picture
$result=mysql_query("select image from images where id=(select max(id) from images)");
$row=mysql_fetch_object($result);
header("Content-Type:image/pjpeg");
echo $row->image;
mysql_close();
?>

Conclusion:

PMA_sqlAddslashes is easy to use. The file size is 12.8k and the same size as the original image

bin2hex hexadecimal useful file 25K

base64_encode is easy to use, the output file requires base64_decode 17K

addslashes is not easy to use, continue to report the error and indicate that addslashes is easy to use on some Windows machines.

I hope this article will be helpful to everyone’s PHP programming design.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/933596.htmlTechArticleSolution to the failure of php to save pictures into mysql database. This article analyzes the failure of php to save pictures into mysql database. solution. Share it with everyone for your reference. Specific points...
Statement of this Website
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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

The page is blank after PHP is connected to MySQL. What is the reason for the invalid die() function? The page is blank after PHP is connected to MySQL. What is the reason for the invalid die() function? Apr 01, 2025 pm 03:03 PM

The page is blank after PHP connects to MySQL, and the reason why die() function fails. When learning the connection between PHP and MySQL database, you often encounter some confusing things...

Why does an error occur when installing an extension using PECL in a Docker environment? How to solve it? Why does an error occur when installing an extension using PECL in a Docker environment? How to solve it? Apr 01, 2025 pm 03:06 PM

Causes and solutions for errors when using PECL to install extensions in Docker environment When using Docker environment, we often encounter some headaches...

How to efficiently integrate Node.js or Python services under LAMP architecture? How to efficiently integrate Node.js or Python services under LAMP architecture? Apr 01, 2025 pm 02:48 PM

Many website developers face the problem of integrating Node.js or Python services under the LAMP architecture: the existing LAMP (Linux Apache MySQL PHP) architecture website needs...

ThinkPHP6 routing: How to completely obtain URL parameters containing special characters such as Chinese? ThinkPHP6 routing: How to completely obtain URL parameters containing special characters such as Chinese? Apr 01, 2025 pm 02:51 PM

ThinkPHP6 routing parameters are processed in Chinese and complete acquisition. In the ThinkPHP6 framework, URL parameters containing special characters (such as Chinese and punctuation marks) are often processed...

How to solve the permissions problem encountered when viewing Python version in Linux terminal? How to solve the permissions problem encountered when viewing Python version in Linux terminal? Apr 01, 2025 pm 05:09 PM

Solution to permission issues when viewing Python version in Linux terminal When you try to view Python version in Linux terminal, enter python...

When using Django and MySQL to process hundreds of thousands to one or two million pieces of data, what kind of cache solution should a 4-core 8G memory server choose? When using Django and MySQL to process hundreds of thousands to one or two million pieces of data, what kind of cache solution should a 4-core 8G memory server choose? Apr 01, 2025 pm 11:36 PM

Using Django and MySQL to process large data volumes When using Django and MySQL databases, if your data volume reaches hundreds of thousands to one or two million...

How to avoid third-party interfaces returning 403 errors in Node environment? How to avoid third-party interfaces returning 403 errors in Node environment? Apr 01, 2025 pm 02:03 PM

How to avoid the third-party interface returning 403 error in the Node environment. When calling the third-party website interface using Node.js, you sometimes encounter the problem of returning 403 error. �...

What is the reason why pipeline persistent storage files cannot be written when using Scapy crawler? What is the reason why pipeline persistent storage files cannot be written when using Scapy crawler? Apr 01, 2025 pm 04:03 PM

When using Scapy crawler, the reason why pipeline persistent storage files cannot be written? Discussion When learning to use Scapy crawler for data crawler, you often encounter a...

See all articles