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