gpt4 book ai didi

php - MySQLi 更新准备语句不更新数据库

转载 作者:搜寻专家 更新时间:2023-10-30 20:27:03 25 4
gpt4 key购买 nike

所以我有这个更新语句,当我转储 $_POST 变量时,我得到了我想要的输出。

 $stmt = $dbConnectionW->prepare("UPDATE members SET 
fname='". mysqli_real_escape_string($dbConnectionW, $_POST['fname']) ."',
sname='". mysqli_real_escape_string($dbConnectionW, $_POST['sname']) ."',
gender='". mysqli_real_escape_string($dbConnectionW, $_POST['gender']) ."',
nationality='". mysqli_real_escape_string($dbConnectionW, $_POST['nation']) ."',
year='". mysqli_real_escape_string($dbConnectionW, $_POST['year']) ."',
dep1='". mysqli_real_escape_string($dbConnectionW, $_POST['dep1']) ."',
dep2='". mysqli_real_escape_string($dbConnectionW, $_POST['dep2']) ."',
f_pos='". mysqli_real_escape_string($dbConnectionW, $_POST['f_pos']) ."',
f_region='". mysqli_real_escape_string($dbConnectionW, $_POST['f_region']) ."',
exp_comp='".$comp."',
exp_dep='".$comp_dep."',
shareinfo='".$shareinfo."',
interest='".$interest."',
userconfirm = '1'
WHERE confirmcode = '".$passkey."';");
$stmt->execute();
if (!$stmt)
{
die('Error: ' . mysqli_error($dbConnectionW));
}
$smst-> close(); }}} mysqli_close($dbConnectionW);
}

基本上问题是它不会更新数据库!它可以正常工作,但在尝试此 sql/php 后数据库不会更新。

有人能看出我的代码有什么问题吗?为什么我的数据库不会更新的一些可能原因是什么?在过去的一个小时里,我一直在做这件事。

最佳答案

您不需要在准备好的语句中转义变量,而是应该在执行语句之前绑定(bind)变量。此外,列名应位于 ` 标记内。

$stmt = $dbConnectionW->prepare("UPDATE members SET 
`fname`=?,
`sname`=?,
`gender`=?,
`nationality`=?,
`year`=?,
`dep1`=?,
`dep2`=?,
`f_pos`=?,
`f_region`=?,
`exp_comp`=?,
`exp_dep`=?,
`shareinfo`=?,
`interest`=?,
`userconfirm`=?
WHERE `confirmcode`=?");
$stmt->bind_param('ssssissssssssis',$_POST['fname'],$_POST['sname'],$_POST['gender'],...);
$stmt->execute();

为简洁起见,我没有包含所有绑定(bind)参数。

希望这对您有所帮助。

关于php - MySQLi 更新准备语句不更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27884296/

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