Php 如何更新数据库中的多个字段
我有一个储存会员记录的数据库照片,里面有姓名、身份证、职位、联系人和电子邮件栏。有一个安全面板,管理员可以在其中更改组的主体成员的详细信息。完整的表单在这里再次显示,其中的值存储在数据库中,所以若管理员想要更改任何值,他/她可以在这里执行,并将该表单提交给更新记录。关于成功提交Php 如何更新数据库中的多个字段,php,mysql,sql,Php,Mysql,Sql,我有一个储存会员记录的数据库照片,里面有姓名、身份证、职位、联系人和电子邮件栏。有一个安全面板,管理员可以在其中更改组的主体成员的详细信息。完整的表单在这里再次显示,其中的值存储在数据库中,所以若管理员想要更改任何值,他/她可以在这里执行,并将该表单提交给更新记录。关于成功提交 $name=$_POST['name']; $au_id=$_POST['au_id']; $position=$_POST['position']; $contact=$_POST['contact']; $email
$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';
}
它正在发送成功更新的消息,但当我再次检查记录时,没有任何更改。我怎样才能解决这个问题试试这个:$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';
}
使用
mysql\u是不推荐使用的函数mysql\u num\u行不应用于不返回结果集的SQL查询,如更新、删除等。
如果mysql\u connect正确地完成了mysql连接,并且使用mysql\u select\u db正确地选择了数据库,那么在某些情况下mysql\u query本身似乎可以工作。因此,您应该检查SELECT查询是否在那里工作。
但是,例如,如果其中一个字段包含“”,则SQL查询将被折叠。这不仅是一个导致错误的问题,而且是一个允许“SQL注入”的漏洞。您应该使用占位符。如果由于某种原因无法使用占位符,则必须使用mysql\u real\u escape\u字符串来转义字段。
正如您在问题列中提到的:
姓名、身份证、职位、联系人和电子邮件
我在您的代码中发现了两件事:-
1) 您将被告知联系人
栏以及使用单元格进行更新
2) 您尚未声明
$contact
变量
请使用正确的列名运行查询,如果id不是字符串,则无需使用
id='6'
您可以使用id=6
来选择、显示、描述、解释和其他返回结果集的语句,mysql\u query()
成功时返回资源,错误时返回FALSE。请检查此项
对于其他类型的SQL语句,INSERT、UPDATE、DELETE、DROP等,mysql\u query()
成功时返回TRUE,错误时返回FALSE
因此,在执行查询时会得到
true
或false
,显然mysql_num_rows(true)
毫无意义。echo$save
并检查查询是否正确。if(!$result){echo mysql_error();}
检查$result返回false的原因。顺便说一句,您总是使用id=6。可能id=6的列已经更新了?@Royal我刚刚粘贴了此行id以了解其他情况,否则id将始终根据记录预览页面中每行前面的“编辑”按钮进行更改。很高兴为您提供帮助:)
$save="UPDATE photos SET name = '".$name."', au_id = '".$au_id."', position = '".$position."', cell = '".$contact."', email = '".$email."' WHERE id = '6' ";
$result=mysql_query($save);
$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';
}