1

我有一个存储成员记录的数据库照片,它有nameau_id 、 position 、 contactemail列。有一个安全面板,管理员可以在其中更改组的主体成员的详细信息。此处再次显示完整的表单,其中存储在数据库中的值,因此如果管理员想要更改任何值,他/她可以在此处执行并提交该表单以更新记录。提交成功时

$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';
}

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

4

6 回答 6

3
$save="UPDATE photos SET name = '".$name."', au_id = '".$au_id."', position = '".$position."', cell = '".$contact."', email = '".$email."' WHERE id = '6' ";
$result=mysql_query($save);
于 2013-10-15T08:46:25.223 回答
0

对于 SELECT、SHOW、DESCRIBE、EXPLAIN 和其他返回结果集mysql_query()的语句,成功时返回资源,错误时返回 FALSE。检查此链接

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

所以你得到truefalse执行查询显然mysql_num_rows(true)没有意义。

于 2013-10-15T09:02:09.653 回答
0

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

于 2013-10-15T08:54:20.707 回答
0

正如您在问题栏中提到的那样:-

name, au_id , position , contact & email

我在您的代码中发现了两件事:-

1)你是提contact列和你的更新cell
2)你没有声明$contact变量。

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

于 2013-10-15T08:54:56.237 回答
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_ 是不推荐使用的函数

于 2013-10-15T08:48:22.827 回答
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';
}
于 2013-10-15T08:44:38.713 回答