gpt4 book ai didi

php - 插入重复键更新返回值 0

转载 作者:行者123 更新时间:2023-11-29 08:50:26 26 4
gpt4 key购买 nike

我正在创建一个网页,您可以在其中为客户编辑本地列表网站。我在 mysql 和 php 中使用 INSERT ... ON DUPLICATE KEY UPDATE 语法。下面是代码:

编辑列表-exec.php

<?
//Array to store validation errors
$errmsg_arr = array();

//Validation error flag
$errflag = false;

$member_id = $_SESSION['MEMBER_ID'];
$userresult = mysqli_query($link, "SELECT username
FROM members
WHERE member_id = '$member_id'");
$row = mysqli_fetch_array($userresult);
$username = $row['username'];


//run a for loop to check for duplicates
for ($i=1; $i < 10; $i++) {
$selectbox = $_POST['listing'.$i];

for ($j=1; $j < 10; $j++) {
if ($j != $i) {
if ($_POST['listing'.$j] === $selectbox && $_POST['listing'.$j] != "") {
$errmsg_arr[] = "Duplicate listing source '$selectbox'";
$errflag = true;
break;
}
}
}
}

//if there are input validations redirect back to main page
if($errflag) {
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
session_write_close();
header("location: edit-listings.php");
exit();
}

//run loop to define post variables
for ($k=1; $k < 10; $k++) {
${'listing'.$k} = mysqli_real_escape_string($link, $_POST['listing'.$k]);
${'listing'.$k.'_site'} = mysqli_real_escape_string($link, $_POST['listing'.$k.'_site']);
}


//insert listings into local_listings table for the user
$qry = "INSERT INTO local_listings (
member_id,
username,
listing1,
listing1_site,
listing2,
listing2_site,
listing3,
listing3_site,
listing4,
listing4_site,
listing5,
listing5_site,
listing6,
listing6_site,
listing7,
listing7_site,
listing8,
listing8_site,
listing9,
listing9_site)
VALUES (
'$member_id',
'$username',
'$listing1',
'$listing1_site',
'$listing2',
'$listing2_site',
'$listing3',
'$listing3_site',
'$listing4',
'$listing4_site',
'$listing5',
'$listing5_site',
'$listing6',
'$listing6_site',
'$listing7',
'$listing7_site',
'$listing8',
'$listing8_site',
'$listing9',
'$listing9_site')
ON DUPLICATE KEY UPDATE
listing1 = '$listing1',
listing1_site = '$listing1_site',
listing2 = '$listing2',
listing2_site = '$listing2_site',
listing3 = '$listing3',
listing3_site = '$listing3_site',
listing4 = '$listing4',
listing4_site = '$listing4_site',
listing5 = '$listing5',
listing5_site = '$listing5_site',
listing6 = '$listing6',
listing6_site = '$listing6_site',
listing7 = '$listing7',
listing7_site = '$listing7_site',
listing8 = '$listing8',
listing8_site = '$listing8_site',
listing9 = '$listing9',
listing9_site = '$listing9_site'";

$result = mysqli_query($link, $qry);

if (mysqli_affected_rows($result) < 1) {
$errmsg_arr[] = "Unable to insert listings for $username";
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
header ("location: edit-listings.php");
}
elseif (mysqli_affected_rows($result) === 1) {
$_SESSION['RESULT'] = "New listings for '$username' inserted successfully";
header ("location: edit-listings-success.php");
}
elseif (mysqli_affected_rows($result) === 2) {
$_SESSION['RESULT'] = "Listings for '$username' have been updated";
header ("location: edit-listings-success.php");
}


?>

数据已成功插入到 local_listings 表中,但 mysqli_affected_rows 始终返回值 0。如果插入新行,则应返回值 1;如果只是更新,则应返回值 2。有什么想法为什么会发生这种情况吗?

最佳答案

试试这个:

    if (mysqli_affected_rows($link) < 1) {
... your code
}

看看here

关于php - 插入重复键更新返回值 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11416887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com