MYSQL INSERT не работает - PullRequest
       2

MYSQL INSERT не работает

2 голосов
/ 08 марта 2011

Я не понимаю, почему моя вставка MY_SQL не работает.

<?php
$sub = $_POST['submit'];


if($sub)
{

$title = $_COOKIE['newstitle'];
$body = $_COOKIE['newsbody'];
$sneak = $_COOKIE['newssneak'];
$date = date("Y-d-m");
$postedby = $_COOKIE['userlogin'];

$connect = mysql_connect("localhost","admin","00904684") or die("Couldn't Connect!");
mysql_select_db("dr") or die("Couldn't find DB.");

$insert = mysql_query
("
INSERT INTO news(`id`,`title`,`summary`,`body`,`date`,`postedby`)
VALUES ('NULL','".$title."','".$sneak."','".$body."','".$date."','".$postedby."')
");
mysql_close($connect);



header('Location: ../index.php');


}
else echo (mysql_error());

?>

Мой код работал до тех пор, пока я не добавил в него новый файл "Summary", с тех пор как он не работалЯ знаю, что переменные проходят правильно, хотя.

Вот мой макет базы данных:

id |название |резюме |тело |дата |отправлено

Ответы [ 4 ]

3 голосов
/ 08 марта 2011

Вам разрешено иметь идентификатор NULL, вы можете попробовать это вместо этого

INSERT INTO news(`title`,`summary`,`body`,`date`,`postedby`)
VALUES ('".$title."','".$sneak."','".$body."','".$date."','".$postedby."')

, удалив поле Id из вставки, это будет то, что будет по умолчанию, будь то null или auto inc.

2 голосов
/ 08 марта 2011

Вы не экранируете свой ввод, что делает вас широко открытыми для внедрения SQL-кода, что, вероятно, является вашей проблемой.Могу поспорить, что в «резюме» есть одна цитата в содержании, которая нарушает ваш запрос.Вы должны делать:

$title = mysql_real_escape_string($_COOKIE['newstitle']);
$body = mysql_real_escape_string($_COOKIE['newsbody']);
$sneak = mysql_real_escape_string($_COOKIE['newssneak']);
$date = date("Y-d-m");
$postedby = mysql_real_escape_string($_COOKIE['userlogin']);
0 голосов
/ 08 марта 2011

Вот моя попытка.

<?php

if($sub)
{
    $title       = mysql_real_escape_string($_COOKIE['newstitle']);
    $body        = mysql_real_escape_string( $_COOKIE['newsbody']);
    $postedby    = mysql_real_escape_string($_COOKIE['userlogin']);
    $sneak       = mysql_real_escape_string($_COOKIE['newssneak']);
    $date        = date('Y-d-m');

    $connect = mysql_connect('Localhost', 'admin', '00904684') or die('Could not connect to database.');
               mysql_select_db('dr') or die('Could not find database.');

    $insert  = mysql_query('INSERT_INTO news(`title`, `summary`, `body`, `date`, `postedby`) 
                                        VALUES(\''. $title . '\', \''. $sneak . '\', \''. $body . '\', \''. $date . '\', \''. $postedby . '\')');
               mysql_close();

    header('Location: ../index.php');
}
else {
    echo mysql_error();
}
0 голосов
/ 08 марта 2011

Если вы действительно хотите вставить строку «NULL» в поле идентификатора, все будет в порядке. Я подозреваю, что вы хотите установить NULL (заметьте, что нет кавычек), что означает «нет значения». Если это так, удалите кавычки или, как сказал @nhutto, удалите столбец вообще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...