将sql变量传递到PHP变量中,然后返回到sql语句中


Pass sql variable into PHP variable then back into sql statement

我想选择表中的最高值:

$max = "SELECT MAX(pid) FROM pic";

然后将该值传递到PHP变量中:

$results_max = $conn->query($max);
$highest_val = $results_max->fetch_assoc();

然后在SQL插入语句中再次使用:

$sql_update = "UPDATE users 
            SET username = '$username', pid = '$highest_val'
            WHERE username = '$username'";

然而,我测试了从第一个select语句($highest_val)中得到的值,它返回"Array"。有人知道我做错了什么吗?

编辑:

$sql_update = "UPDATE users 
            SET username = '$username', pic_id = '$highest_val[pid]'
            WHERE username = '$username'" ;

您需要创建MAX(pid); 的别名

$max = "SELECT MAX(pid) as pid FROM pic";

现在您使用获取最大pid

$results_max = $conn->query($max);
$highest = $results_max->fetch_assoc();
$highest_val =$highest['pid'];// pass column name here

您的更新查询将是

$sql_update = "UPDATE users 
            SET username = '".$username."', pid = '".$highest_val."'
            WHERE username = '".$username."'";