Я хочу вставить имя, описание и изображение в БД.Что не так с моим кодом? - PullRequest
0 голосов
/ 11 февраля 2019

Я хочу вставить имя, описание и изображение в мою базу данных.Что не так с этим кодом?

<?php
$host="localhost";
$user="root";
$password="";
$database="jin";
$sql = mysqli_connect($host,$user,$password,$database) or die("cannot connect");

if(isset($_POST['submit']))
{
    $file = addslashes(file_get_contents($_FILES["image"]["tmp_name"])); 
    $name = $_POST['name'];
    $description = $_POST['description'];
    $query = "INSERT INTO cai(name,description,image,) VALUES ('$name','$description','$file')";
    if(mysqli_query($sql,$query))
    {
        echo"uploaded";
    }
    else {
        echo"not inserted";
    }
}
?>

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

1)

Не используйте root для подключения к вашей базе данных на PHP.Используйте нового пользователя -spistist- SQL, предназначенного для PHP и с минимальными привилегиями.В противном случае это плохая практика и потенциальная дыра в безопасности.

2)

Удалите последнюю запятую из списка имен столбцов ...image,)

3)

Включите имена столбцов в обратные галочки (эти парни:"` "; обычно рядом с цифрой 1 на латинской клавиатуре).

3b)

Избегайте использования Зарезервированные слова .

4)

Читать Журнал ошибок PHP

5)

Правильно выводите ошибки MySQLi с помощью

 mysqli_query($sql,$query) or error_log(print_r(mysqli_error($sql),true));

, который выведет в файл журнала ошибок точную ошибку MySQLi.

6)

Использовать подготовленные отчеты. А?

0 голосов
/ 11 февраля 2019

Входные параметры вставляются в строку.Если это так, то это не правильно, потому что я думаю, что в БД вы указали имя столбца, описание, файл varchar или текст.

Вы можете исправить следующее:

$query = "INSERT INTO cai(name,description,image,) VALUES ('".$name."','".$description."','".$file."')"; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...