1

我写了一个简单的表单,用户可以从中更改他/她的姓名、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'];
 }
 ?>

我不知道我错在哪里..

4

3 回答 3

2

您的代码存在的问题:

  • 您没有检查错误。使用mysql_error().
  • 您没有检查您的输入(是否有效)。您应该绑定参数或使用mysql_real_escape_string.
  • 将查询放在单独的字符串中。类似的东西$query = "UPDATE ..."; $do = mysql_query($query);。它对调试很有用。您知道您发送的确切查询是什么。
  • 你用$rowq[id]错了方法。当你在一个字符串中使用.符号时,你连接多个字符串;或者你把它附在{$rowq[id]}.

当你做这一切时,你会自己解决问题。也阅读文档

于 2012-05-17T10:19:59.540 回答
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。

于 2012-05-17T10:15:55.367 回答
0

将代码更改为 $do = mysql_query("UPDATE profile SET name = '$name', facebook = '$fb', img = '$img' WHERE id = '$rowqw[id]'");

于 2013-04-04T00:21:00.850 回答