Php 同时更新表中的两个字段

Php 同时更新表中的两个字段,php,mysql,Php,Mysql,我想同时将中的两个字段更新到表中,但这不起作用 任何人都可以帮我 if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) { $updateSQL = sprintf( "UPDATE child,list SET child.list_num = list.list_id WHERE child.user_id = list.user_id", GetS

我想同时将中的两个字段更新到表中,但这不起作用 任何人都可以帮我

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
    $updateSQL = sprintf(
        "UPDATE child,list SET child.list_num = list.list_id  WHERE child.user_id = list.user_id",
        GetSQLValueString($_POST['list_num'], "int"),
        GetSQLValueString($_POST['id'], "int")
    );

    mysql_select_db($database_amar, $amar);
    $Result1 = mysql_query($updateSQL, $amar) or die(mysql_error());

    $updateGoTo = "list_child.php";
    if (isset($_SERVER['QUERY_STRING'])) {
        $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
        $updateGoTo .= $_SERVER['QUERY_STRING'];
    }
    header(sprintf("Location: %s", $updateGoTo));
}

$colname_edit = "-1";
if (isset($_GET['id'])) {
    $colname_edit = $_GET['id'];
}

mysql_select_db($database_amar, $amar);
$query_edit = sprintf(
    "SELECT * FROM child, list WHERE id= %s",              
    GetSQLValueString($colname_edit, "int")
);
$edit = mysql_query($query_edit, $amar) or die(mysql_error());
$row_edit = mysql_fetch_assoc($edit);
$totalRows_edit = mysql_num_rows($edit);

我已经尝试过你的查询,它的工作非常完美

"UPDATE child,list SET child.list_num = list.list_id  WHERE child.user_id = list.user_id"
但我对您的实现有一个疑问,那就是您为什么在这里使用sprintf

$updateSQL = sprintf("UPDATE child,list SET child.list_num =                      list.list_id  WHERE child.user_id = list.user_id ",
                     GetSQLValueString($_POST['list_num'], "int"),
                   GetSQLValueString($_POST['id'], "int"));
这表明您的需求与您的实现略有不同。查询中缺少要使用参数的位置

GetSQLValueString($_POST['list_num'], "int") and GetSQLValueString($_POST['id'], "int").
目前,您的查询将在不进行任何检查的情况下更新表,这不符合sprintf的要求。设法

$query_edit = sprintf("SELECT * FROM child, list WHERE id= %s",               GetSQLValueString($colname_edit, "int"));

我已经尝试过你的查询,它的工作非常完美

"UPDATE child,list SET child.list_num = list.list_id  WHERE child.user_id = list.user_id"
但我对您的实现有一个疑问,那就是您为什么在这里使用sprintf

$updateSQL = sprintf("UPDATE child,list SET child.list_num =                      list.list_id  WHERE child.user_id = list.user_id ",
                     GetSQLValueString($_POST['list_num'], "int"),
                   GetSQLValueString($_POST['id'], "int"));
这表明您的需求与您的实现略有不同。查询中缺少要使用参数的位置

GetSQLValueString($_POST['list_num'], "int") and GetSQLValueString($_POST['id'], "int").
目前,您的查询将在不进行任何检查的情况下更新表,这不符合sprintf的要求。设法

$query_edit = sprintf("SELECT * FROM child, list WHERE id= %s",               GetSQLValueString($colname_edit, "int"));

不工作意味着什么?你能把你的错误贴出来吗?它们不再被维护,并被正式弃用。使用mysqli还是pdo不工作?你能把你的错误贴出来吗?它们不再被维护,并被正式弃用。使用mysqli或PDO