Невозможно сохранить данные Base64 в базе данных MySQL

#php #mysql #string #base64

#php #mysql #строка #base64

Вопрос:

Я пытаюсь сохранить строку Base64 в своей базе данных MySQL с помощью PHP. Вот мой код.

 <?PHP
//Store Image
$photoData = $_POST['PhotoData'];

//Database connection details
$db_url = "192.168.1.140";
$db_user_name = "easyblogadmin";
$db_password = "admin";
$db_name = "easyblog";

$con = mysqli_connect($db_url, $db_user_name, $db_password);
$sql = "insert into temptable (photodata) values('$photoData')";

if(mysqli_connect_errno()){
        echo "Failed to Connect Database";
        echo mysqli_connect_errno();
        die();
    } else {
        //Connecting to Application Database
        $db_selected = mysqli_select_db($con, $db_name);
        if(!$db_selected){
            echo "Failed to Connect Application Database";
            die();
        } else {
            if (!mysqli_query($con,$sql)) {
                die('Error: ' . mysqli_error($con));
            }
            mysqli_close($con);
            echo "Successfully Added photo".strlen($photoData);
        }
    }?>
 

Здесь $photoData — это моя строка в кодировке Base64, и я сохраняю ее в своей базе данных. Когда я пытаюсь извлечь эти данные из базы данных, некоторые данные в моей строке отсутствуют. Я не понимаю, почему это происходит. Может ли кто-нибудь мне помочь.

с уважением.

Комментарии:

1. Каково содержимое $sql перед его выполнением?

2. Попробуйте увеличить длину этого поля в базе данных

3. Какова структура вашей таблицы?

4. @lc — Содержимое представляет собой изображение, закодированное в Base64

5. Тип столбца photodata в моей таблице базы данных — longtext. Эта таблица состоит только из двух полей S.No и ptotodata.

Ответ №1:

выполните SQL-запрос, как указано ниже

 $sql = "insert into databasename.temptable (photodata) values('$photoData')";
 

также, пожалуйста, убедитесь, что в закодированном значении есть одинарные кавычки, если это так, то замените данные, как указано ниже.

 $photoData =str_replace("'","'",$_POST['PhotoData']);