-1

私は非常に単純なグループ (vb フォーラム グループなど) を作成しています。いくつかのエラーを取得して修正した後、エラーなしでページが表示されるようになりました。

問題は、データが mysql に挿入されていないことです。入力をフォームに入れてから作成を押すと、「?update=update」になり、成功メッセージがエコーされますが、mysql には送信されません。

コード:

<? if(!$update) { ?>
<form action="make_group.php?update=update" method="post">

Group name: <br />
<input name="title" type="text" size="30" />
<br />

Group picture: <br />
<input name="picture" type="text" size="30" />
<br />

Group desc: <br />
<textarea name="desc" cols=30 rows=10 wrap=physical></textarea>
<br />

        <input type="submit" value="Create" />


    <? }

    elseif($update==update)
    {
        $username = $_SESSION[usr_name];
        $action = "made a group";
    $title = clean($_POST[title]);
    $desc = clean($_POST[desc]);
    $pictures = clean($_POST[pictures]);
        $updateemail = mysql_query("insert into usr_groups(username, title, desc, picture) values('$username', '$title', '$desc', '$picture')");
        $result = @mysql_query($qry2);
    echo("Your group has been created");
    } ?>

ページコードの上

<?
session_start();
include("config.php");
$ip = $_SERVER['REMOTE_ADDR'];
$sqlcontent = mysql_query("select * from usr_config");
$content = mysql_fetch_array($sqlcontent);

if(!isset($_SESSION[usr_name]) || empty($_SESSION[usr_name]) || !isset($_SESSION[usr_level]) || empty($_SESSION[usr_level]))
{
session_destroy();
session_unset();
die('
    <tr>
      <td><meta http-equiv="REFRESH" content="0;url=/index.php"></HEAD></td>
    </tr>
    <tr>
      <td></td>
    </tr>
  </table>
</div>
</body>');
}
include("func.php");

$update = clean($_GET[update]);
$getprof = mysql_query("select * from usr_users where username = '$_SESSION[usr_name]'");
$prof = mysql_fetch_array($getprof);
?>
4

3 に答える 3

0

エコー$updateemailしてからこのコードを追加して、エラーがあるかどうかを確認してください。

if (!mysql_query($updateemail,$con)) { 
   die('Error: ' . mysql_error());
}

echo "1 レコードが追加されました";

また、挿入クエリを次のように変更します。

$updateemail = mysql_query("insert into usr_groups(username, title, description, picture) values('$username', '$title', '$desc', '$pictures')");

desc 列の名前を何かに変更します。

于 2012-07-06T11:35:32.513 に答える
0

` で desc をオフにします - 以下のコメントを含めるように回答を修正します - desc は MySQL の予約語です。ソート順ではなくフィールド名として宣言するには、バックティックが必要です:)

mysql_query(call) の最後に OR die(mysql_error()) を追加することをお勧めします

    mysql_query('your query') OR die(mysql_error())

私はあなたのデバッグ中にのみこれを行い、一般の人が見るものには残しません. これにより、INSERT クエリが機能しない理由に関する情報が得られます。どこに接続しているかはわかりませんが、セキュリティ上の理由からそれを省略したと思います:)

あなたの発言はわかります

    elseif($update==update){ 

その周りに引用符がありません-そのため、条件付きブロックが呼び出されることはないように思われます...あなたのコメントはわかりますが、少なくともデバッグの目的で、その周りにいくつかの引用符を投げることを検討します。傷つけることはできません:) die ステートメントは、構文の問題があるかどうかを教えてくれます。条件が期待どおりに解釈されるように、そのブロックにも何かを印刷することを検討してください...

FWIW あなたの SQL は私には問題ないようです。

于 2012-07-06T11:23:46.833 に答える
0

$pictures を $pictures に変更

$updateemail = mysql_query("insert into usr_groups(username, title, desc, picture) values('$username', '$title', '$desc', '$pictures')");

指定された列がキーワード (DESC など) の場合は挿入できません

于 2012-07-06T11:41:30.823 に答える