How to upload images into MySQL database using PHP code

前端 未结 3 1937
清酒与你
清酒与你 2020-11-22 15:21

I am trying to save images in my database from HTML form. I have written PHP code to accomplish this task. The program is not generating any error message, but also not inse

3条回答
  •  情话喂你
    2020-11-22 15:59

    Firstly, you should check if your image column is BLOB type!

    I don't know anything about your SQL table, but if I'll try to make my own as an example.

    We got fields id (int), image (blob) and image_name (varchar(64)).

    So the code should look like this (assume ID is always '1' and let's use this mysql_query):

    $image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); //SQL Injection defence!
    $image_name = addslashes($_FILES['image']['name']);
    $sql = "INSERT INTO `product_images` (`id`, `image`, `image_name`) VALUES ('1', '{$image}', '{$image_name}')";
    if (!mysql_query($sql)) { // Error handling
        echo "Something went wrong! :("; 
    }
    

    You are doing it wrong in many ways. Don't use mysql functions - they are deprecated! Use PDO or MySQLi. You should also think about storing files locations on disk. Using MySQL for storing images is thought to be Bad Idea™. Handling SQL table with big data like images can be problematic.

    Also your HTML form is out of standards. It should look like this:


    Sidenote:

    When dealing with files and storing them as a BLOB, the data must be escaped using mysql_real_escape_string(), otherwise it will result in a syntax error.

提交回复
热议问题