我收到错误
“试图获取非对象的属性”on:if($ result4-> num_rows> 0)。
为什么会这样?以及如何防止它再次发生。我刚刚开始使用php ...可以解决吗? 提前谢谢。
rs = stmt.executeQuery("select"
+" sum(pr.amount)"
+" from trans_log tl,"
+" payment_detail pp,"
+" pft_trans_reltn pr,"
+" pft_encntr pe,"
+" encounter e,"
+" account a"
+" where"
+" pr.beg_effective_dt_tm >= TO_DATE('01/JUN/2015 00:00:00', 'dd/mm/yy hh24:mi:ss') AND pr.beg_effective_dt_tm <= TO_DATE('30/JUN/2015 23:59:59', 'dd/mm/yy hh24:mi:ss')"
+" and pp.payment_detail_id=tl.payment_detail_id"
+" and tl.activity_id=pr.activity_id"
+" and tl.active_ind=1"
+" and tl.trans_type_cd=10982.00"
+" and pr.parent_entity_name='PFTENCNTR'"
+" and pe.pft_encntr_id=pr.parent_entity_id"
+" and a.acct_id=pe.acct_id"
+" and a.acct_type_cd=649377.00"
+" and pe.encntr_id=e.encntr_id"
+" and e.organization_id=589723.00");
答案 0 :(得分:0)
不要混用mysqli fuctions
和OOP
概念
试试这个代码
if (isset($_POST['submit']))
{
if (isset($_POST['AFNumber'])) {
$sql = "SHOW COLUMNS FROM Employees";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result)){
$tempname = $row['Field'];
// Changes Function
$sqlCheck = "SELECT * FROM Employees WHERE AFNumber='".$_GET["af"]."' AND (".$row['Field']." NOT LIKE '".$_POST[$tempname]."')";
$result3 = mysqli_query($con,$sqlCheck);
if (mysqli_num_rows($result3) > 0) {
// output data of each row
while($row3 = mysqli_fetch_array($result3)) {
$sql3 = "INSERT INTO `Changes` (`Table`, `AFNumber`, `Attribute`, `DateChanged`, `HRUser`, `OldValue`, `NewValue`)
VALUES ('Employees', '".$_GET["af"]."', '".$row["Field"]."', '".date("d/m/Y h:i:sa")."', '$login_session', '$row3[$tempname]', '$_POST[$tempname]')";
if (mysqli_query($con,$sql3) === TRUE) {
} else {
echo "Error: " . $sql3 . "<br>" . mysqli_error($con);
}
}
}
//End Changes Function
$sql2 = "UPDATE Employees SET ".$row['Field']."= '$_POST[$tempname]' WHERE AFNumber='".$_GET["af"]."'";
$result2 = mysqli_query($con,$sql2);
if (mysqli_query($con,$sql2) === TRUE) {
} else {
echo "Error: " . $sql2 . "<br>" . mysqli_error($con);
echo '<script>swal("Error", "Something went wrong '.mysqli_error($con).'", "error");</script>';
}
}
echo '<script>swal("Success", "Changes have been saved", "success");</script>';
} //End If POST Submit True
else{
$sql = "SHOW COLUMNS FROM Candidates";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result)){
$tempname = $row['Field'];
// Changes Function
$sqlCheck = "SELECT * FROM Candidates WHERE CID='".$_GET["cid"]."' AND (".$row['Field']." NOT LIKE '%".$_POST[$tempname]."%')";
$result4 = mysqli_query($con,$sqlCheck);
if (mysqli_num_rows($result4) > 0) {
// output data of each row
while($row4 = mysqli_fetch_array($result4)) {
$sql4 = "INSERT INTO `Changes` (`Table`, `AFNumber`, `Attribute`, `DateChanged`, `HRUser`, `OldValue`, `NewValue`)
VALUES ('Candidates', '".$_GET["cid"]."', '".$row["Field"]."', '".date("d/m/Y h:i:sa")."', '$login_session', '$row4[$tempname]', '$_POST[$tempname]')";
if (mysqli_query($con,$sql4) === TRUE) {
} else {
echo "Error: " . $sql4 . "<br>" . mysqli_error($con);
}
}
}
}
echo '<script>swal("Success", "Changes have been saved", "success");</script>';
}}
答案 1 :(得分:0)
@Dan,我看到你接受了答案,但我也想补充一点。
这里有一些问题(见评论),而不是“修复”问题。 (我会在任何一天的程序中使用OOP)代码让我们解释你的问题。您收到错误的原因是因为您的选择查询(出于某种原因)失败,导致#mydiv
{
max-height:100px;
overflow-y:scroll;
position : relative;
}
false 所以当您致电$result4
时得到上述错误。
尝试更新这些行:
$result4->num_rows
用这个:
$result4 = $con->query($sqlCheck);
if ($result4->num_rows > 0) {
这应该告诉你sql语句中的错误是什么,以便你自己修复它,并且无需检查if (($result4 = $con->query($sqlCheck)) === false) {
echo 'error: '.$con->error;
} else {
(你现在不需要)
注意:您应该始终检查sql查询的结果并尝试以某种方式处理错误 - 不要假设您的查询总是成功!