The reason why your code isn't working is because you need to escape your data.
$imageContent = fread($image, filesize($imgloc));
$imageContent = mysqli_real_escape_string($conn, $imageContent);
You are not seeing the syntax error, similar to:
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 '8 16@#54' at line 1...
- Because you are not checking for errors.
Visit http://php.net/manual/en/mysqli.error.php and http://php.net/manual/en/function.error-reporting.php, then use the following at the top of your file:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
// rest of your code
This will signal syntax errors.
Use mysqli
with prepared statements, or PDO with prepared statements
Plus, as Mike Brant said in comments, and I quote:
"As a tangential comment, I would recommend making sure that you REALLY have a good use case for storing images blobs in MySQL. In a lot of cases, this might not be a good idea when compared to simply storing file references in the database."
- Mike speaks the truth. Your database will increase dramatically over time, therefore storing a copy of your files in a folder then making a reference to it, is usually a better idea, but that is entirely up to you.
Read the following Q&A's on Stack:
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…