我建立了一个简单的网站,它就像一个淡化的目录。您列出所有条目
,然后可以单击某个条目以了解更多详细信息。
它在我的测试服务器上运行良好,但切换到另一台服务器时就崩溃了。我不确定到底为什么,而且我没有更改工作代码中的代码。所以我认为这是一个版本错误。
但是我不确定是什么,因此无法想到其他编写方法。
以下是导致问题的代码示例:
$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
有人知道这可能是什么吗?
最佳答案
去掉$entryid两边的大括号,在连接变量之前需要关闭字符串:
$tlo = $conn->query("SELECT * FROM entries WHERE entryID = '" $entryid "' ");
关于php - PHP 的 SQL Server 版本错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23995942/