Как сохранить текстовую область в SQL?
вот HTML:
<form method="post" action="text-handler.php">
<textarea name="content" style="width:100%;cursor:text;"></textarea>
</form>
и php:
<?php
session_start();
$user_name = $_SESSION['user_name'];
require_once("config/db.php");
require_once("config/db_connection.php");
$newtext = $_POST['content'];
$sql = mysqli_query($db_connection, "INSERT INTO 'texts' ('text', 'user') VALUES ($newtext, $user_name)");
?>
Помните, что идентифицирующие кавычки — это обратные кавычки, а не одинарные кавычки:
Вот в вашем коде:
INTO 'texts' ('text', 'user')
^ ^ ^ ^ ^ ^ // use backticks not single quotes
И этот запрос небезопасен и напрямую вводит пользовательский ввод в оператор и склонен к внедрению SQL.
Вместо этого лучше использовать подготовленное заявление:
session_start();
$user_name = $_SESSION['user_name'];
require_once("config/db.php");
require_once("config/db_connection.php");
$newtext = $_POST['content'];
$sql = 'INSERT INTO `texts` (`text`, `user`) VALUES (?, ?)';
$insert = $db_connection->prepare($sql);
$insert->bind_param('ss', $newtext, $user_name);
$insert->execute();
if($insert->affected_rows > 0) {
echo 'insert complete';
}
я просто использую этот вид кода
вот HTML и ////////
/
вот контрольная часть
публичная функция insert_projects_to_db ($ data)
{
return $this->db->insert('projects', $data);
}
функция в базе данных для отправленных данных в базу данных
$ pdata [‘description’] = $ this-> input-> post (‘description’);