Не работает INSERT INTO

520
19 января 2017, 06:37
<!DOCTYPE html>
<html>
<head>
    <title>Админ-панель</title>
</head>
<body>
<form method="post" action="add.php">
Название статьи <br>
<input type="text" name="title"><br>
Текст новоист<br>
<textarea cols="40" rows="10" name="text"></textarea><br>
<input type="submit" name="add" value="Добавить"><br> 
</form>
<?php
include_once ("../includes/config/connect1.php");
if(isset($_POST['add']))
{
$title = strip_tags(trim($_POST['title']));
$text = strip_tags(trim($_POST['text']));
mysql_query(" INSERT INTO blog (title, text) VALUES ('$title, $text') ");
}
?>
</body>
</html>
Answer 1

У вас ошибка в запросе, нужно поправить на:

INSERT INTO blog (title, text) VALUES ('$title', '$text')

Но не советую использовать данный вариант, так как тут можно использовать SQL Injection

Я бы посоветовал вам переписать код с использованием mysqli - документация

Вариант с подготовкой запроса (Процедурный стиль):

// Подключение к базе данных 
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');
// Подготавливаемый запрос 
$stmt = mysqli_prepare($link, "INSERT INTO blog (title, text) VALUES (?, ?);");
// Собираем запрос 
mysqli_stmt_bind_param($stmt, "ss", $title, $text);
// Выполняем запрос 
mysqli_stmt_execute($stmt);
// закрываем запрос
mysqli_stmt_close($stmt);

Вариант с подготовкой запроса (ООП стиль):

$mysqli = new mysqli($host, $user, $pass, $date_base);
// Подготавливаем запрос
if(!($stmt = $mysqli->prepare("INSERT INTO blog (title, text) VALUES (?, ?);"))) {
    // В случаи ошибки
    echo(date("H:i:s(d.m)")." Exit->Error: PREPARE SQL INSERT");
}
/*  Сбор запроса update */
if(!($stmt->bind_param("ss", $title, $text))){
    // В случаи ошибки
    echo(date("H:i:s(d.m)")." Exit->Error: SQL Bind Param (".$stmt->errno.") ".$stmt->error);
}
/* Выполняем запрос */
if(!$stmt->execute()) {
    // В случаи ошибки
    echo(date("H:i:s(d.m)")." Exit->Error: Не удалось выполнить запрос: (".$stmt->errno.") ".$stmt->error);
}
/* Закрываем запрос */
$stmt->close();

В принципе можно убрать проверки и получиться:

$mysqli = new mysqli($host, $user, $pass, $date_base);
$stmt = $mysqli->prepare("INSERT INTO blog (title, text) VALUES (?, ?);");
$stmt->bind_param("ss", $title, $text);
$stmt->execute();

Пример кода без mysqli не желателен

Поправьте mysql_query на данный вариант:

 mysql_query(" INSERT INTO blog (title, text) VALUES ('".mysql_real_escape_string($title)."', '".mysql_real_escape_string($text)."');");
Answer 2

Друзья, всем спасибо кто помогал, благодарю. Ошибку нашел благодаря тому что приписал die(mysql_error()) и понял в чем ошибка.

P.S. Я новичок в php

Answer 3

Попробуй так:

mysqli_query(" INSERT INTO blog (title, text) VALUES ('".$title."', '".$text."') ");
READ ALSO
Как мне соединить таблицы в phpMyAdmin?

Как мне соединить таблицы в phpMyAdmin?

Есть таблица users, где пишутся логин и пароль, есть отдельная таблица students, где вся информация про студента - типа имя, возраст, адрес

400
PHP shared memory - перезапись c изменением размера, или аналог realloc

PHP shared memory - перезапись c изменением размера, или аналог realloc

В блоке общей памяти должна постоянно обновляться информация, которая приходит часто (15 - 25 раз в секунду)Размеры каждой "порции" отличаются,...

331
Как в сгенерированной Search моделе сделать поиск в связанной таблице

Как в сгенерированной Search моделе сделать поиск в связанной таблице

У меня есть модель AuthAssignmentphp и она связана с двумя моделями

342
Web-терминал через SSH

Web-терминал через SSH

Доброго времени суток!

337