簡體   English   中英

需要協助才能在我的查詢中找到語法錯​​誤

[英]Need assistance to find the syntax error in my query

我正在編寫一個程序來處理用戶的時間輸入。 我編寫了下面的PHP,以在從JavaScript推送變量時從服務器檢索用戶詳細信息。

我的問題是SQL引發致命錯誤,該錯誤使它靠近變量:uid。

這是我得到的完整錯誤,

致命錯誤:消息為“ SQLSTATE [42000]”的未捕獲的異常“ PDOException”:語法錯誤或訪問沖突:1064 SQL語法有錯誤; 在第25行的*** \\ TimSheetSystem \\ bin \\ Functions \\ getUsrId.php中,檢查與您的MySQL服務器版本相對應的手冊以獲取正確的語法,以在第1行的':uid'附近使用

這是我的JavaScript,

function getUser2(){

var selUser = document.getElementById("uid").value;

if(window.XMLHttpRequest)
{
    xmlhttp=new XMLHttpRequest();
}
else
{
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange=function()
{
    if(xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        document.getElementById("userSelect").innerHTML=xmlhttp.responseText;
    }
};
xmlhttp.open("POST","../functions/getUsrId.php?uid=getUsr2&selUser="+selUser,true);
xmlhttp.send();

}

這是帶有查詢的PHP,

$getSelUsr = "SELECT * FROM userlogin WHERE uId = :uid";
$getSelUsrQuery = $dbConnect -> query($getSelUsr);
$getSelUsrQuery -> bindParam(':uid', $_REQUEST["selUser"]);
$getSelUsrQuery -> execute();
$getSelUsrRow = $getSelUsrQuery -> fetch(PDO::FETCH_ASSOC);

echo "<option id= ".$getSelUsrRow["uId"].">".$getSelUsrRow["fName"]." ".$getSelUsrRow["lName"]."</option>";

我查看並檢查了所有的半數,並確實嘗試不使用JavaScript直接推送數據,但仍然一遍又一遍地遇到相同的錯誤。

可以找出我在做什么錯嗎?

EDIT1此頁面通過定時函數調用程序調用getUser2函數。

主頁面

<?php if ($_SESSION["sT"] == "Done"){ ?>
 <body onload="tEditReload2()">
 <div id="divCenter-timeEdit" class="box">
  <label id="sbId" hidden><?php echo $_SESSION["uRole"]?></label>
   <div class="logo-timeEdit">
        <img src="../../images/logo.png" width="142" height="33">
    </div>
    <div id="mainDiv" style="height: 38px;">
        <label for="dPicker">Date:</label>
        <input type="text" id="dPicker" style="margin-left: .5%;" size="10" value="<?php echo $getStermRow["sDate"]; ?>">
        <label for="userSelect" style="margin-left: 2%">Select User:</label>
        <select id="userSelect" style="width:160px; margin-left: .5%;" onchange="usrId(this.id);"></select>
        <input type="text" id="uid" size="1" value="<?php echo $getStermRow["sUid"]; ?>" hidden>
 <input type="button" class="getData" value="Submit" onclick="getData();">
    </div>
    <div id="resultTable"><span id="noDataMsg"></span> </div>2
</div>
</body>

定時函數調用器

function tEditReload2() {
    getUser2();
    setTimeout("getData();",100);
}

嘗試更改:

$getSelUsrQuery = $dbConnect -> query($getSelUsr);

$getSelUsrQuery = $dbConnect ->prepare($getSelUsr);

您是否已丟棄$ uid? 它是有效值嗎?

嘗試bindValue bindParam

$getSelUsrQuery -> bindValue(':uid', $_REQUEST["selUser"]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM