SQL Query不更新数据

时间:2012-05-17 10:10:40

标签: php mysql sql

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

我不知道我错在哪里..

3 个答案:

答案 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]'”);