(PHP)If语句有问题(它们不能正常工作)
我正试图编写一个PHP文件来更新数据库中的数据,但由于某些原因,if语句不起作用。我已经做了测试,看看是否所有的职位都被填补了,一切都应该正常。请帮忙(PHP)If语句有问题(它们不能正常工作),php,sql,Php,Sql,我正试图编写一个PHP文件来更新数据库中的数据,但由于某些原因,if语句不起作用。我已经做了测试,看看是否所有的职位都被填补了,一切都应该正常。请帮忙 <?php session_start(); include 'dbh.php'; $newname = htmlspecialchars($_POST['nieuwenaam']); $newprice = htmlspecialchars($_POST['nieuweprijs']); $oldname = $_POST['ouden
<?php
session_start();
include 'dbh.php';
$newname = htmlspecialchars($_POST['nieuwenaam']);
$newprice = htmlspecialchars($_POST['nieuweprijs']);
$oldname = $_POST['oudenaam'];
$oldprice = $_POST['oudeprijs'];
$pid = $_POST['pid'];
if(!isset($newname) && !isset($newprice))
{
echo 'hoi';
}
elseif(!isset($newname) && isset($newprice))
{
echo $newprice;
$sql = "UPDATE producten SET naam = '$oldname' , price = '$newprice' WHERE product_id = $pid";
$query = $PDO->prepare($sql);
$query->execute();
}
elseif(isset($newname) && !isset($newprice))
{
echo $newname;
$sql = "UPDATE producten SET naam = '$newname' , price = '$oldprice' WHERE product_id = $pid";
$query = $PDO->prepare($sql);
$query->execute();
}
更换!isset()由空()和isset()由!空的()
你把你的变量设置在你的条件之上,然后你的检查会显示变量是否被设置。我猜你的变量总是设置好的,这就是为什么它看起来不起作用的原因
不要使用isset($newname)
而使用isset($\u POST[“nieuwenaam”])
。
它可能会起作用。“不起作用”。。。您期望发生什么以及实际发生了什么?您在if
和elseif
中的所有条件都为false,因此它不会执行您的查询。您在脚本顶部定义了$newname
和$newprice
,因此所有isset()
将返回true$newname=htmlspecialchars(
始终设置$newname
(可以为空,但已设置)。因此测试isset($newname)
没有任何用处,它总是正确的。如果你把变量直接放在查询中,为什么要使用准备好的语句。看看准备好的语句的正确用法。
if(empty($newname) && empty($newprice)){
echo 'hoi';
}elseif(empty($newname) && !empty($newprice)){
echo $newprice;
$sql = "UPDATE producten SET naam = '$oldname' , price = '$newprice' WHERE product_id = $pid";
$query = $PDO->prepare($sql);
$query->execute();
}
elseif(!empty($newname) && empty($newprice)){
echo $newname;
$sql = "UPDATE producten SET naam = '$newname' , price = '$oldprice' WHERE product_id = $pid";
$query = $PDO->prepare($sql);
$query->execute();
}