0

テキストアップロード機能を作成しました。データベースにテキストを投稿しようとすると、「列数が行1の値数と一致しません」というエラーが表示されます。私のコードは次のようになります:

<?php

if (isset($_REQUEST['name']) && isset($_REQUEST['body']) && strlen($_REQUEST['name']) > 0 && strlen($_REQUEST['body']) > 0) {
    //get data
    $title = $_REQUEST['name'];
    $body = $_REQUEST['body'];

    mysql_connect("Server","username","password") or die(mysql_error());
    mysql_select_db("database") or die(mysql_error());

    $date = date("Y-m-d");

    //insert data
    $insert = mysql_query("INSERT INTO news VALUES ('','".mysql_real_escape_string($title)."','".mysql_real_escape_string($body)."','".mysql_real_escape_string($date)."')") or die(mysql_error());

    die("Your text has been posted!");
?>

私は何を間違えましたか?

4

3 に答える 3

0

テーブル内の実際のフィールド数よりも少ないまたは多いフィールドを挿入しています。このようなエラーを防ぐには、SQL で挿入先のフィールドを明示的に示すことを常にお勧めします。このような:

$insert = mysql_query("INSERT INTO news(field1, field2, field3) VALUES (...
于 2012-09-15T14:58:00.463 に答える
0

ネルソンが言ったように、あなたは間違ったフィールドを書いています。あなたのテーブルは構造化されています:

id - int(11) title - varchar(100) body - varchar(1000)

追加しています:

id - ''
title - '".mysql_real_escape_string($title)."'
body - '".mysql_real_escape_string($body)."' 
date - '".mysql_real_escape_string($date)."'

テーブルに日付フィールドを追加するか、クエリから削除する必要があります。

于 2012-09-15T15:01:21.737 に答える
0

それを試してみてください:-

ただし、挿入クエリにフィールド名(field1、field2、field3)を追加することを忘れないでください。

データベース テーブルの自動インクリメントID フィールドで主キーを設定します。

<?php


$mytitle = $_REQUEST['name'];
$mybody = $_REQUEST['body'];


if (isset($mytitle) &&  strlen($mytitle) > 0  && isset($mybody) && strlen($mybody) > 0) {
    //get data


    mysql_connect("Server","username","password") or die(mysql_error());
    mysql_select_db("database") or die(mysql_error());

    $date = date("Y-m-d");

    //insert data
    $insert = mysql_query("INSERT INTO news (field1, field2, field3) VALUES ('".mysql_real_escape_string($mytitle)."','".mysql_real_escape_string($mybody)."','".mysql_real_escape_string($date)."')") or die(mysql_error());

    die("Your text has been posted!");
}    
?>
于 2012-09-15T15:02:57.260 に答える