输入没有提交数据到mysql

时间:2012-07-06 11:09:55

标签: php mysql html

我正在创建一个非常简单的组(如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);
?>

3 个答案:

答案 0 :(得分:0)

用` - 修改我的答案以包括我的评论来解决desc - 在MySQL中保留desc是一个保留字,将其声明为字段名而不是排序顺序,它必须有后面的标记:)< / p>

我建议在你的mysql_query(call)的末尾添加一个OR die(mysql_error())

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

我只会在您调试时执行此操作,而不是将其留在公众会看到的任何内容上。这将为您提供有关INSERT查询无效的原因的信息。我不在你连接的地方,但我假设你出于安全原因将其遗漏了:)

我确实看到了你的陈述

    elseif($update==update){ 

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

FWIW你的SQL对我来说似乎没问题 - 如果你有一个名字,你可能会遇到名称问题......

答案 1 :(得分: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列名称更改为某些内容。

答案 2 :(得分:0)

将$ picture更改为$ pictures

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

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