2014-01-23 9 views
0

Я разделил свое заявление на вставку и перестроил его, думая, что это решит проблему, а это не так. Заявление не добавит каких-либо данных вообще, может ли кто-нибудь понять, почему он не работает? неЗапрос INSERT, не добавляющий вообще

index.php

<form method="post" action="insert.php"> 

    Name Of Band:</br> 
    <input type="text" name="Name" /><br /> 

    Show Name:</br> 
    <input type="text" name="show" /><br /> 

    Venue:</br> 
    <input type="text" name="Venue" /><br /> 

    Category:</br> 
    <input type="text" name="Category" /><br /> 

    Price:</br> 
    <input type="text" name="price" /><br /> 

    Stock:</br> 
    <input type="text" name="Stock" /><br /> 

    Infomation:</br> 
    <input type="text" name="infomation" /><br /> 

    <input type="submit" value="Add Band"/> 

</form> 

insert.php

 <?php 
require 'core/init.php'; 
$Name = $_REQUEST["Name"]; 
$show = $_REQUEST["show"]; 
$Venue = $_REQUEST["Venue"]; 
$Category = $_REQUEST["Category"]; 
$price = $_REQUEST["price"]; 
$Stock = $_REQUEST["Stock"]; 
$infomation = $_REQUEST["infomation"]; 


$query = "INSERT INTO `bands` (`Name`, `show`, `Venue`, `Category`, `price`, `Stock`, `infomation`) VALUES ('$Name', '$show', '$Venue', '$Category', '$price', '$Stock', '$infomation')"; 

mysql_query ($query, $linkme) 
    or die ("could not add to database"); 
    header("location:admin.php"); 
?> 

схема

 DROP TABLE IF EXISTS `bands`; 
CREATE TABLE IF NOT EXISTS `bands` (
    `Band_id` int(11) NOT NULL AUTO_INCREMENT, 
    `Name` varchar(20) NOT NULL, 
    `show` varchar(22) NOT NULL, 
    `Venue` varchar(20) NOT NULL, 
    `Category` varchar(20) NOT NULL, 
    `price` int(11) NOT NULL, 
    `Stock` int(11) NOT NULL, 
    `infomation` varchar(20) NOT NULL, 
    PRIMARY KEY (`Band_id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ; 

ничего плохого в свя так как многие запросы на обновление и удаление вставки используют его.

+0

Sidenote: Ваш код [Открыть в SQL injection] (http://stackoverflow.com/q/60174/) –

+0

Как я могу это предотвратить? – Beep

+0

Нажмите ссылку, которую я вам предоставил в своем комментарии выше. –

ответ

3

Ваш запрос прекрасен.

Ваша таблица имеет несколько полей, которые объявлены not null, например stock и information и так далее. Они не имеют значений по умолчанию, поэтому ваш insert не работает.

У вас есть несколько вариантов:

  • Изменить столбцы, чтобы NULL
  • Предоставить значения для них в insert
  • значения по умолчанию
+2

'Ваш вопрос прекрасен' ?? Если название группы не является чем-то вроде '' n sync', конечно ... – jeroen

+0

Запрос не вызывает проблему 'insert'. Вы правы, это зависит от SQL-инъекции. Я удивлен, что в вопросе еще нет комментариев. –

+0

Я буду изучать защиту SQL-инъекций после того, как у меня будет вставка. Спасибо за совет. – Beep

Смежные вопросы