#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']);