Php MySQL更新不更新任何行
以下语法有什么问题:Php MySQL更新不更新任何行,php,mysql,Php,Mysql,以下语法有什么问题: if( isset($_POST['save_changes']) ) { // Get current id of customer $currentID = $_GET['id']; // Get Input Values $newfirstName = validateInputData($_POST['first_name']); $newlastName = validateInputD
if( isset($_POST['save_changes']) ) {
// Get current id of customer
$currentID = $_GET['id'];
// Get Input Values
$newfirstName = validateInputData($_POST['first_name']);
$newlastName = validateInputData($_POST['last_name']);
$newemail = validateInputData($_POST['email']);
$newphone = validateInputData($_POST['phone_number']);
$newaddressOne = validateInputData($_POST['address_one']);
$newaddressTwo = validateInputData($_POST['address_two']);
$newcounty = validateInputData($_POST['county']);
$newcity = validateInputData($_POST['city']);
$newzipCode = validateInputData($_POST['zip_code']);
$newprovince = validateInputData($_POST['province']);
$newstate = validateInputData($_POST['state']);
// Queries
$query = "UPDATE customers
SET
first_name='$newfirstName',
last_name='$newlastName',
email='$newemail',
phone='$newphone'
WHERE id='$currentID'
";
$conn->query($query) or die($conn->error.__LINE__);
$query = "UPDATE addresses
SET
address_one='$newaddressOne',
address_two='$newaddressTwo',
county='$newcounty',
city='$newcity',
province='$newprovince',
zip_code='$newzipCode',
state='$newstate'
WHERE customer_id='$currentID'
";
$conn->query($query) or die($conn->error.__LINE__);
// Bring user back to index
header("Location: index.php?alert=savechanges");
// Close connection to database
$conn->close();
}
上面的查询运行正常,但该行未更新。所有字段名称都是适当的。在phpMyAdmin中尝试查询时,行将更新
请帮助,谢谢。您的validateInputData()函数未执行任何验证。希望它能进行一些转义,这意味着您正在为数据库连接对象假定全局范围。您没有告诉我们这是什么类型的数据库对象。你的错误检查很差。重定向后,您不会显式退出
除此之外,sql看起来还不错 if语句
echo“save_changes was set”中没有出现错误;退出代码>并查看它是否输出。什么也没有发生。一切进展顺利。当我使用受影响的函数时,该值为Null。在尝试各种方法后,回显查询并共享输出,最后,我按照@tadman的建议使用PDO,并创建一个变量,该变量使用sakhunzai建议的从隐藏输入获取的值保存id。基本上,所发生的是由$\u GET方法引起的错误,该方法用于检索来自URL的id值。谢谢你的建议,塔德曼和萨坤仔。