trak_ivan
@trak_ivan

Почему не записывает текст в БД?

Собственно, есть небольшая таблица с 4мя полями (2 целочисленных и 2 текстовых см. рис)
Y9fiL3htOOs.jpg
Сейчас я поставил и таблице и полям сравнение кодировку: 'UTf8'
Есть Код, который переданные из формы данные записывает в БД в эти поля, но почему то если я передаю 2 текстовых поля (phraseseng и phrasesrus), то туда ничего не записывается. Если я допустим записываю поле type одно, то все записывается хорошо.
Вот код:
header("Content-Type: text/html; charset=utf-8");
$type= (int)$_POST['Section'];
$phrases_eng = $_POST['phrases']; 
$phrases_rus = $_POST['translate'];
require_once 'database_connect.php';
$link = mysql_connect($host, $user, $password) or die("MySQL сервер недоступен!".mysql_error());
mysql_select_db($database,$link) or die("Could not select examples");
mysql_query("SET NAMES 'utf8'",$link);
$result=mysql_query("INSERT INTO `tourist_phrases` (`type`,`phrases_eng`,`phraserus`) VALUES ('$type','$phrases_eng','$phrases_rus')", $link);


Пробовал различные методы, которые написаны в инете и что- то как то не помогает.
ps Данные $phrases_eng и $phrases_rus заполнены.
Что не так делаю?
  • Вопрос задан
  • 1422 просмотра
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Что не так делаю?

У вас скобка в VALUES() не закрыта и $phrases_eng без кавычек.
А ещё, вы используете устаревшее расширение mysql, а не его современный аналог: PDO или mysqli.
А ещё, вы вставляете прямо в запрос данные, полученные от клиента. Welcome, SQL Injection!
А ещё, раз уж вы велосипедите слой работы с БД, имеет смысл перенести собственно подключение к базе в файл database_connect.php и подключать его так: $link = require_once 'database_connect.php';.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы