我有一個查詢,表UPDATE
的列。MySQL查詢只完成80%的查詢,爲什麼它缺少20%的查詢?
$sql = $con->query("UPDATE projects SET
ProjectName = '{$UpdatePName}',
StartDate = '{$UpdatePStart}',
EndDate = '{$UpdatePEnd}',
AStartDate = '{$UpdateAStart}',
AEndDate = '{$UpdateAEnd}',
ProjectBio = '{$UpdateBio}'
WHERE ProjectID = '$Project'") or die(mysqli_error($con));
但是它沒有更新StartDate
和EndDate
。它用於在我添加AStartDate
和AEndDate
之前進行更新,但我不明白它們會對它造成什麼影響?
我檢查了拼寫錯誤等,所以希望我沒有漏掉任何明顯的東西。
下面的代碼整段:
$Project = $_GET['id'];
$result = $con->query("SELECT * FROM projects WHERE ProjectID ='$Project'") or die(mysqli_error($con));
if ($result){
$row = mysqli_fetch_assoc($result);
$_SESSION["ProID"] = $row['ProjectID'];
$_SESSION["ProName"] = $row['ProjectName'];
$_SESSION["PStDate"] = $row['StartDate'];
$_SESSION["PEnDate"] = $row['EndDate'];
$_SESSION["ProBio"] = $row['ProjectBio'];
$_SESSION["AStDate"] = $row['AStartDate'];
$_SESSION["AEnDate"] = $row['AEndDate'];
}
if(isset($_POST['Update'])){
//Ternary expressions to switch between POST or SESSION variables.
$UpdatePName = ($_POST['ProjName'] != '')? $_POST['ProjName'] : $_SESSION["ProName"];
$UpdatePStart = ($_POST['StarDate'] != '')? $_POST['StarDate'] : $_SESSION["PStDate"];
$UpdatePEnd = ($_POST['EnDate'] != '')? $_POST['EnDate'] : $_SESSION["PEnDate"];
$UpdateBio = ($_POST['ProDesc'] != '')? $_POST['ProDesc'] : $_SESSION["ProBio"];
$UpdateAStart = ($_POST['ActStartDate'] != '')? $_POST['ActStartDate'] : $_SESSION["AStDate"];
$UpdateAEnd = ($_POST['ActEndDate'] != '')? $_POST['ActEndDate'] : $_SESSION["AEnDate"];
$sql = $con->query("UPDATE projects SET
ProjectName = '{$UpdatePName}',
StartDate = '{$UpdatePStart}',
EndDate = '{$UpdatePEnd}',
AStartDate = '{$UpdateAStart}',
AEndDate = '{$UpdateAEnd}',
ProjectBio = '{$UpdateBio}'
WHERE ProjectID = '$Project'") or die(mysqli_error($con));
header('Location: Projects.php');
die();
}
確定的值在會話中設置?我也建議利用mysqli的參數綁定,否則你是開放的sql注入。 – aynber
您可以激活mysql的[通用查詢日誌](http://dev.mysql.com/doc/refman/5.7/en/query-log.html)並查看實際到達服務器的查詢/數據。 – VolkerK
'$ UpdatePStart' vs'$ UpdateStart' – Ties