php - 在单个查询php mysql中更新多行

标签 php mysql

我正在尝试在单个查询中更新多行。数据没有在我的代码中更新。我正在尝试加入这两个表。当用户输入编号时。将显示通过外键连接的 2 个表中的数据。表 1 中的数据得到更新。表 2 中的列没有更新。我需要根据唯一 id 更新第二个表

    if($_REQUEST["profile"] == "profile") 
{
    $Id = $_REQUEST["id"];
    $firstname  = mysql_real_escape_string($_REQUEST["firstname"]);
    $serial  = mysql_real_escape_string($_REQUEST["serial"]);
    $dom  = mysql_real_escape_string($_REQUEST["dom"]);
    $idno = $_REQUEST["idno"];
    $pow = mysql_real_escape_string(stripslashes($_REQUEST["pow"]));
    $address = mysql_real_escape_string(stripslashes($_REQUEST["address"]));
    $bookno = mysql_real_escape_string(stripslashes($_REQUEST["bookno"]));
    $zone = mysql_real_escape_string(stripslashes($_REQUEST["zone"]));
    $mobile = mysql_real_escape_string(stripslashes($_REQUEST["phone"]));
    $phone = mysql_real_escape_string(stripslashes($_REQUEST["mobile"]));
    $mothertongue=mysql_real_escape_string(stripslashes($_REQUEST["mothertongue"]));
    $nof=mysql_real_escape_string(stripslashes($_REQUEST["nof"]));
    $email=mysql_real_escape_string(stripslashes($_REQUEST["email"]));
    $nom=$_REQUEST["nom"];
    $nofemale=$_REQUEST["nofemale"];
mysql_query("UPDATE profile SET  firstname='".$firstname."',serial='".$serial."',dom='".$dom."',idno='".$idno."',pow='".$pow."',address='".$address."',bookno='".$bookno."',
zone='".$zone."',phone='".$mobile."',mobile='".$phone."',mothertongue='".$mothertongue."',email='".$email."',nof='".$nof."',nom='".$nom."',nofemale='".$nofemale."' WHERE id = '".$_POST['id']."' " ) or die(mysql_error());

    for($i=0;$i<count($_REQUEST['slno1']);$i++)
    {
        $mid=$_REQUEST['mid'][$i];
        $slno1 = mysql_real_escape_string(stripslashes($_REQUEST["slno1"][$i]));
    $name1 =  mysql_real_escape_string(stripslashes($_REQUEST["name1"][$i]));
    $rhof1 =  mysql_real_escape_string(stripslashes($_REQUEST["rhof1"][$i]));
    $dob1 =  mysql_real_escape_string(stripslashes($_REQUEST["dob1"][$i]));
    $dobapt1 =  mysql_real_escape_string(stripslashes($_REQUEST["dobapt1"][$i]));
    $doc1 =  mysql_real_escape_string(stripslashes($_REQUEST["doc1"][$i]));
    $doconf1 =  mysql_real_escape_string(stripslashes($_REQUEST["doconf1"][$i]));
    $qualification1 =  mysql_real_escape_string(stripslashes($_REQUEST["qualification1"][$i]));
    $school1 =  mysql_real_escape_string(stripslashes($_REQUEST["school1"][$i]));
    $occupation1 = mysql_real_escape_string(stripslashes($_REQUEST["occupation1"][$i]));



$run=mysql_query("UPDATE member SET
slno1='".$slno1."',name1='".$name1."',rhof1='".$rhof1."',dob1='".$dob1."',dobapt1='".$dobapt1."',doc1='".$doc1."',doconf1='".$doconf1."',qualification1='".$qualification1."' WHERE mid = '".$mid."' " ) or die(mysql_error()); 

}



}

最佳答案

请使用 PDO,这样您就不必对字符串进行转义,从而使您的代码更易于阅读。您的查询使用了太多引号,仅此一项就很容易失败。请使用以下示例,这应该可以帮助您取得成功。

基本 PDO 更新: https://www.w3schools.com/php/php_mysql_update.asp

绑定(bind)参数: https://www.w3schools.com/php/php_mysql_prepared_statements.asp

关于php - 在单个查询php mysql中更新多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50445906/

相关文章:

java - 新/更新对象的混合列表 : how to efficiently store them to the DB?

Mysql 不存在或替代方案

php - 通过 python 将 JSON 发送到外部 PHP 监听器

CodeIgniter 框架内的 PHP CRON 作业

PHP从网页A触发,从网页B的数据库中加载内容

mysql - Oracle SOA BPEL 调用 MySQL 过程 - 参数号 2 不是输出参数

php - 在 PHP 中仅存储 SQL 年份的最佳实践

php - 通过 PEAR 安装 PHPUnit

php - 在 PHP 中从 MySQL 表数据创建 CSV 文件

php - MySQL 中比较三个表的一个答案