Я не уверен, как обрабатывать образ в PHP, чтобы поместить его в тип BLOB в MYSQLI. Вот мой код до сих пор ...Как я могу ввести изображение в mysqli?
<?php
$servername = ""; //Taken out for stack overflow question
$username = ""; //Taken out for stack overflow question
$password = ""; //Taken out for stack overflow question
$dbname = ""; //Taken out for stack overflow question
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn)
{
echo 'Could not connect';
}
else
{
if (!empty($_FILES['cf'] && $_POST['category']))
{
$file = $conn->real_escape_string($_FILES['cf']['tmp_name']);
mysqli_query($conn, "INSERT INTO adDatabase(".$category.") VALUES(".$file.")");
}
else
{
echo 'Empty file';
}
}
mysqli_close($conn);
?>
Теперь значение изображения не равно нулю, поэтому изображение обрабатывается. Но я не могу заставить его обработать. Обычно я делаю переменную $ var = $ _POST ['cf']; то я добавляю это в запрос. Я также попробовал $ var = $ _FILES ['cf']; но он не будет обрабатывать. Есть ли что-то еще, что мне нужно сделать, чтобы заставить его отправлять/обрабатывать правильно?
Редактировать на основе ответа
Я изменил свой PHP к чему-то, что напоминает ответ
<?php
$servername = ""; //Taken out for stack overflow question
$username = ""; //Taken out for stack overflow question
$password = ""; //Taken out for stack overflow question
$dbname = ""; //Taken out for stack overflow question
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn)
{
echo 'Could not connect';
}
else
{
if (!empty($_FILES['cf'] && $_POST['category']))
{
try
{
$file = $conn->real_escape_string($_FILES['cf']['tmp_name']);
$filecontents = File_Get_Contents($file);
$filecontentssafe = $conn->real_escape_string($filecontents);
mysqli_query($conn, "INSERT INTO adDatabase(".$category.") VALUES(".$file.")");
echo 'Query successful';
}
catch(Exception $e)
{
echo 'Could not perform action' + $e;
}
}
else
{
echo 'Empty file';
}
}
mysqli_close($conn);
?>
Теперь я вижу запрос успешно, но .. ничего не входит в базу данных.
Edit - добавил извлечение файлу
<?php
$servername = "";
$username = "";
$passcode = "";
$dbname = "";
$conn = mysqli_connect($servername, $username, $passcode, $dbname);
if (!$conn)
{
echo 'Could not connect';
}
else
{
try
{
$sql_query = mysqli_query($conn, "SELECT * FROM `adDatabase`");
while ($row = mysqli_fetch_array($sql_query))
{
$id = $row['ID'];
$img = $row['img'];
$image = '<img src="data:image/png;base64,'.base64_encode($row['food']).'" style="height: 12em; width: 12em; margin: 1em; padding: 0.9em; " >';
echo $image;
}
}
catch(Exception $e)
{
echo $e;
}
}
?>
Как получить информацию о
У вас есть уязвимость в SQL-инъекции. – SLaks
'var_dump ($ _ FILES)'. то, что находится в $ _FILES, это только информация о загрузке. он НЕ является фактическим содержимым файла. –
Ни SSL, ни другие методы защиты не помогут в SQL-инъекции каким-либо образом. Вы не поняли уязвимости. И, используя параметры, все равно исправить вашу проблему. – SLaks