2011-12-19 3 views
0

Я не могу писать в свою базу данных, используя этот скрипт, который я взломал раньше.Проблемы с записью в базу данных

<?php 
include("db.php"); 

if($_SERVER["REQUEST_METHOD"] == "POST") 
{ 
    // Data sent from form, then posted to "admin" table in database 
    $name = mysql_real_escape_string($_POST['name']); 
    $description = mysql_real_escape_string($_POST['description']); 
    $author = mysql_real_escape_string($_POST['author']); 
    $image = mysql_real_escape_string($_POST['image']); 
    $category = mysql_real_escape_string($_POST['category']); 
    $sql = "INSERT INTO admin(name,description,author,image,category) VALUES('$name','$description','$author','$image','$category');"; 
    $result = mysql_query($sql); 
    header("Location: video.php?file=' . $filename . '"); 
} 
?> 

И вот мой SQL:

CREATE TABLE admin 
(
    id INT PRIMARY KEY AUTO_INCREMENT, 
    name VARCHAR(50) UNIQUE, 
    description VARCHAR(50) UNIQUE, 
    author VARCHAR(50) UNIQUE, 
    image VARCHAR(50) UNIQUE, 
    category VARCHAR(50) UNIQUE 
); 

Все подается с POST через HTML-форму. Я не совсем уверен, что я делаю неправильно, поэтому почему мне интересно, что вы, ребята, думаете. Есть предположения?

+1

Какие ошибки вы получаете? – CanSpice

+1

Вы даже уверены, что попадете в свое состояние? – Repox

+0

Нет. Я проверяю свою таблицу после перенаправления заголовка, и ничего не опубликовано –

ответ

0

$result = mysql_query($sql) недействителен (контакт не указан).

Это должно быть $result = mysql_query($sql, [CONNECTION]);

Возможно, возникнут другие проблемы, но это очевидно.

+2

Я уверен, что db указан в 'db.php'. Я не думаю, что вам нужно явно указать соединение, если есть только одно. – Indranil

+0

Какая связь будет, мой db? –

+0

Если он не откроет соединение в своем файле 'db.php', в этом случае будет использоваться последняя ссылка, открытая с помощью' mysql_connect() '. – CanSpice

-1
$auhtor=mysql_real_escape_string($_POST['author']); 

Авторская ошибка написана неправильно.

+1

Не может ли это быть причиной того, что столбец 'author' будет заполнен пустой строкой? – CanSpice

+0

Ну, это не помогло бы – Tim

+0

Исправлено, все тот же. Ничего не добавлено. –

0

Выполните следующие действия:

  1. открыть соединение MySQL (если не опущено в сниппет)
  2. Проверьте заявление MySQL с помощью var_dump($sql)
  3. Проверить возвращаемое значение mysql_query(), должно быть true если оператор INSERT преуспел.
  4. Проверка на количество строк, затронутых в заявлении INSERT: mysql_affected_rows()

Примечание: Я уверен, что ваш INSERT заявление терпит неудачу, потому что все ваши столбцы определяются как UNIQUE. Как только у вас уже есть автор с тем же именем, утверждение терпит неудачу!

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