我写了一个简单的表单,用户可以从中更改他/她的名字,Facebook名称和图像 这是profile.php代码,格式为
<!!--edit form--!!>
<div id="edit">
<table width="300" border="0" align="center" cellpadding="0" cellspacing="1"
bgcolor="#CCCCCC">
<tr>
<td>
<table width="100%" border="0" cellpadding="1" cellspacing="1"bgcolor="#FFFFFF">
<tr>
<form method="POST" action="save_profile.php">
<td colspan="3"><strong>Username<br><? echo $row['session'];?></strong></td>
<td colspan="3"><strong>Name</strong><input type="text" name="name" id="name"
value="<? echo $row['name'];?>"/><br></td>
<td colspan="3"><strong>Facebook</strong><input type="text" name="fb" id="fb" value="<? echo $row['facebook'];?>"/></td>
<td colspan="3"><strong>Image</strong><input type="text" name="img" id="img" value="<? echo $row['img'];?>"/></td>
<input type="hidden" name="pros" />
<input type="submit" value="Save" />
</form>
这是save_profile.php
<?
include"sp-includes/sp-config2.php";
$resultz = mysql_query($slctq);
while($rowqw = mysql_fetch_array($resultz, MYSQL_ASSOC))
{
if($_POST['pros']){
$name=$_POST['name'];
$fb=$_POST['fb'];
$img=$_POST['img'];
$do =mysql_query("UPDATE profile SET name='$name', facebook='$fb', img='$img' WHERE id='$rowqw[id]'");
}
echo $rowqw['id'];
}
?>
我不知道我错在哪里..
答案 0 :(得分:2)
首先,请对您的查询进行消毒。您的查询现在完全开放,可能完全是它失败的原因。
像这样写下你的查询:
mysql_query('UPDATE profile SET name="'.mysql_real_escape_string($name).'", facebook="'.mysql_real_escape_string($fb).'", img="'.mysql_real_escape_string($img).'" WHERE id="'.mysql_real_escape_string($rowqw['id']).'";');
另请注意,rowqw索引应写为“id”而不是id。
答案 1 :(得分:2)
您的代码存在问题:
mysql_error()
。mysql_real_escape_string
转义。$query = "UPDATE ..."; $do = mysql_query($query);
这样的东西。它对调试很有用。您知道您发送的确切查询是什么。$rowq[id]
。在字符串中使用.
表示法时,可以连接多个字符串;或者将其括在{$rowq[id]}
。当你完成所有这些工作时,你将自己解决问题。也请阅读docs。
答案 2 :(得分:0)
将代码更改为 $ do = mysql_query(“UPDATE profile SET name ='$ name',facebook ='$ fb',img ='$ img'WHERE id ='$ rowqw [id]'”);