簡體   English   中英

PHP的SQL Server版本錯誤

[英]SQL Server Version Error with PHP

我建立了一個簡單的網站,就像一個簡明的目錄。 您列出所有entries ,然后可以單擊條目以了解更多詳細信息。

它可以在我的測試服務器上正常工作,但是切換到另一台服務器時會中斷。 我不確定為什么會這樣,而且我還沒有從工作代碼中更改過代碼。 因此,我認為這是一個版本錯誤。

但是,我不確定是什么,因此無法想到其他編寫方式。

這是導致問題的代碼示例:

$username456 = 'username';
$password456 = 'password';

$entryid = $_POST['entryid'];


$conn = new PDO('mysql:host=hostaddress;dbname=dbname', $username456, $password456);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$tlo = $conn->query("SELECT * FROM entries WHERE entryID = {$entryid} ");
$tlo->setFetchMode(PDO::FETCH_ASSOC);

while($row = $tlo->fetch()) {

 //loop stuff

}

我看不到它與另一頁上的代碼有什么不同,但這是我不斷拋出的錯誤:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1' in /homepages/11/d211013232/htdocs/WEBSITE/entry.php:54 Stack trace: #0 /homepages/11/d211013232/htdocs/WEBSITE/entry.php(54): PDO->query('SELECT * FROM e...') #1 {main} thrown in /homepages/11/d211013232/htdocs/WEBSITE/entry.php on line 54

有人知道這可能是什么嗎?

嘗試改變這個

$tlo = $conn->query("SELECT * FROM entries WHERE entryID = {$entryid} ");

對此

$tlo = $conn->query("SELECT * FROM `entries` WHERE entryID = '$entryid'");

除去$ entryid周圍的大括號,然后需要在連接變量之前關閉字符串:

$tlo = $conn->query("SELECT * FROM entries WHERE entryID = '" $entryid "' ");

暫無
暫無

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

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