Dipak384 Ответов: 2

Как вставить изображение в базу данных mysql с помощью исходного кода PHP..?


<?php
функцию mysql_connect("localhost в", "корень","") или умереть ("не удалось подключиться к серверу");
mysql_select_db("demodemo") или die ("эта база данных не может быть найдена");

файл $ = переменную $_FILES['изображения']['tmp_name'];

$изображение= функция addslashes(функции file_get_contents (переменную$_FILES['изображения']['tmp_name']));
$имя_образа = функция addslashes (переменную$_FILES['изображения']['имя']);
$image_size = getimagesize($_FILES['image']['tmp_name']);

mysql_query("вставить изображение (код,изображения) значения ('1','{$изображения}')");
?>

Что я уже пробовал:

я уже пробовал..


<?php
функцию mysql_connect("localhost в", "корень","") или умереть ("не удалось подключиться к серверу");
mysql_select_db("demodemo") или die ("эта база данных не может быть найдена");

файл $ = переменную $_FILES['изображения']['tmp_name'];

$изображение= функция addslashes(функции file_get_contents (переменную$_FILES['изображения']['tmp_name']));
$имя_образа = функция addslashes (переменную$_FILES['изображения']['имя']);
$image_size = getimagesize($_FILES['image']['tmp_name']);

mysql_query("вставить изображение (код,изображения) значения ('1','{$изображения}')");
?>

2 Ответов

Рейтинг:
2

ishan_shah

Вы можете сделать это с помощью следующего кода после успешного подключения к базе данных :

if(isset($_POST['btnSubmit'])){

    $target_dir = "uploads/";
    $target_file = $target_dir . basename($_FILES["image"]["name"]);
    $uploadOk = 1;
    $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

    if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["image"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }

    $image=basename( $_FILES["image"]["name"],".jpg");
    $query= "INSERT INTO image(id,image) VALUES ('1','$image')";
    mysql_query($query);
    echo "Data Successfully Inserted";
}


Рейтинг:
1

Gilles Migliori (migli)

Привет,

Хранение данных изображений в базе данных на самом деле не очень хорошая идея. Ваша база данных станет тяжелой только с несколькими изображениями.

Обычно логика заключается в том, чтобы загрузить изображение с помощью PHP, а затем записать только имя файла в базу данных. PHP также может генерировать миниатюры на лету, чего вы не можете сделать, если храните изображение в поле BLOB.

Тем не менее, вот код, на случай, если будет очень уникальная особая причина, по которой вы все еще хотите сохранить данные BLOB-объекта:

$fp = fopen($_FILES['image']['tmp_name'], 'r');
$filename = $_FILES['image']['name'];
$content = fread($fp, $_FILES['image']['tmp_name']);
// Insert into blob
$query = "INSERT INTO image (id, image) VALUES ('$filename', '$content')";


Richard Deeming

Как и в случае с кодом в исходном вопросе, ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк/интерполяцию для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.

PHP: SQL-инъекция - руководство пользователя[^]

Gilles Migliori (migli)

Вы абсолютно правы, запрос не защищен. На форумах и других форумах обычно дают простые примеры кода таким образом.

Я не согласен с тем, чтобы всегда использовать параметризованные запросы. Существуют и другие 100% безопасные решения, например PHP-фильтры или объявление типа переменной