-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

用 ` 设置 desc - 修改我的答案以包含我的评论 - desc 是 MySQL 中的保留字,将其声明为字段名而不是排序顺序,它必须有反引号:)

我建议将 OR die(mysql_error()) 添加到 mysql_query(call) 的末尾

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

我只会在您调试时这样做,而不是将其留在公众会看到的任何东西上。这将为您提供有关 INSERT 查询为何不起作用的信息。我不知道您在哪里连接,但出于安全原因,我假设您将其排除在外:)

我确实看到你的陈述

    elseif($update==update){ 

它周围没有引号 - 所以看起来条件块永远不会被调用......我看到你的评论,但我会考虑至少出于调试目的,在它周围加上一些引号。不能伤害正确:) die 语句会告诉你是否有语法问题。也许考虑在该块中打印一些东西,以确保条件以您期望的方式解释......

FWIW 你的 SQL 对我来说似乎很好 - 如果你在名字中得到一个 ' ,你可能会遇到这个名字的问题......

于 2012-07-06T11:23:46.833 回答
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

将 $picture 更改为 $pictures

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

如果列名为关键字,例如 DESC,则无法插入

于 2012-07-06T11:41:30.823 回答