2011-12-19 35 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 
); 

すべてはHTMLフォームからPOSTで提出されます。私は間違って何をしているのか分からないので、どうしてあなたが思うのか不思議です。何かご意見は?

+1

どのようなエラーが表示されますか? – CanSpice

+1

if条件の中に入ることさえ確信していますか? – Repox

+0

なしヘッダーのリダイレクト後にテーブルをチェックし、何も投稿されていない –

答えて

0

$result = mysql_query($sql)は無効です(接続が指定されていません)。

$result = mysql_query($sql, [CONNECTION])が必要です。

その他の問題があるかもしれませんが、それは明らかです。

+2

私はdbが 'db.php'で指定されていると確信しています。接続が1つしかない場合、明示的に接続に言及する必要はないと思います。 – Indranil

+0

接続は何ですか、私のデータベースですか? –

+0

彼が 'db.php'ファイルで接続を開かない限り、mysql_connect()で最後に開いたリンクが使用されます。 – CanSpice

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

Author変数のスペルが間違っています。

+1

'author'カラムが空の文字列で埋められるだけではないでしょうか? – CanSpice

+0

それは助けになりません – Tim

+0

固定、まだ同じです。何も追加されていません。 –

0

次の手順に従います。

  1. オープンtrueあるべきMySQLの接続(スニペットでは省略されていない場合)
  2. は、mysql_query()の戻り値のvar_dump($sql)
  3. チェックを使用してMySQLの文をチェックINSERT文が成功した場合
  4. INSERT文によって影響を受けた行数のチェック:mysql_affected_rows()

注: すべての列がUNIQUEのように定義されているので、私はあなたのINSERTステートメントが失敗したことをかなり確信しています。同じ名前の作者がすでにいれば、その文は失敗します!

関連する問題