如何更新数据库中的多个字段

时间:2013-10-15 08:41:05

标签: php mysql sql

我有一个数据库照片,其中存储了成员记录,它有名称 au_id, 位置,< / b> 联系&amp; 电子邮件列。有一个安全的面板,管理员可以在其中更改组的正文成员的详细信息。此处再次显示完整表单,其中值存储在数据库中,因此如果管理员想要更改他/她可以在此处执行的任何值并将该表单提交到更新记录。成功提交

$name=$_POST['name'];
$au_id=$_POST['au_id'];
$position=$_POST['position'];
$contact=$_POST['contact'];
$email=$_POST['email'];

我无法更新特定成员的记录。我的数据库中有主键 id 。我正在使用:

$save="UPDATE photos SET name = '$name', au_id = '$au_id', position = '$position', cell = '$contact', email = '$email' WHERE id = '6' ";
$result=mysql_query($save);

并推出一张支票,以便我知道如果查询成功运行,

if (mysql_num_rows($result))
{
   echo 'successfully updated';
}
else
{
  echo 'not updated';
}

它提供了成功更新的消息,但是当我再次检查记录时,没有任何改变。我怎么能弄清楚这个问题

6 个答案:

答案 0 :(得分:3)

$save="UPDATE photos SET name = '".$name."', au_id = '".$au_id."', position = '".$position."', cell = '".$contact."', email = '".$email."' WHERE id = '6' ";
$result=mysql_query($save);

答案 1 :(得分:0)

$save="UPDATE photos SET name = '$name', au_id = '$au_id', position = '$position', cell = '$contact', email = '$email' WHERE id = '6' ";

if ($result=mysql_query($save))
{
   echo 'successfully updated';
}
else
{
  echo 'not updated';
}

答案 2 :(得分:0)

试试这个:
   使用mysql_affected_rows()

$save="UPDATE photos SET name = '$name', au_id = '$au_id', position = '$position', cell = '$contact', email = '$email' WHERE id = '6' ";

$result=mysql_query($save);
$cnt=mysql_affected_rows();
if($cnt>0)
{
   echo 'successfully updated';
}
else
{
    echo 'not updated';
}

mysql_已弃用功能

答案 3 :(得分:0)

mysql_num_rows不应该用于不返回结果集的SQL查询,例如UPDATE,DELETE等。
如果mysql_connect正确完成mysql连接并且使用mysql_select_db正确选择了db,那么mysql_query在某些情况下似乎可以工作。所以你应该检查SELECT查询是否在那里工作 但是,如果其中一个字段包含“'”,则表示您的SQL查询已折叠。这不仅是导致错误的问题,而且是允许“SQL注入”的漏洞。你应该使用占位符。如果由于某种原因无法使用占位符,则必须使用mysql_real_escape_string来转义字段。

答案 4 :(得分:0)

正如您在问题中提到的那样,列是: -

name, au_id , position , contact & email

我的代码中有两件事: -

1)您将提及contact列,并使用cell进行更新  2)您尚未声明$contact变量。

请使用正确的列名运行查询,如果ID不是字符串,则无需使用id = '6'即可使用id = 6

答案 5 :(得分:0)

对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他返回结果集的语句,mysql_query()会在成功时返回资源,或者在出错时返回FALSE。检查此link

对于其他类型的SQL语句,INSERT,UPDATE,DELETE,DROP等,mysql_query()成功时返回TRUE,错误时返回FALSE。

因此,您在执行查询时得到truefalse,显然mysql_num_rows(true)毫无意义。