php - PHP 的 SQL Server 版本错误

标签 php mysql

我建立了一个简单的网站,它就像一个淡化的目录。您列出所有条目,然后可以单击某个条目以了解更多详细信息。

它在我的测试服务器上运行良好,但切换到另一台服务器时就崩溃了。我不确定到底为什么,而且我没有更改工作代码中的代码。所以我认为这是一个版本错误。

但是我不确定是什么,因此无法想到其他编写方法。

以下是导致问题的代码示例:

$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/

相关文章:

php - 如何在条形图mysql中回显carno的名称

php - WordPress 导航菜单未显示在自定义存档页面上

sql - 需要查询帮助

php - MySQL DB 查询与 PHP 变量的比较

php - 在列表标签​​中的 while 循环中获取数据

php - 如何在 Laravel 5 中为模型中的现有字段定义访问器?

mysql - rake 数据库 :migrate catch errors

mysql - 通过多个wheres from关系查询1-多关系

sql - mysql查询。 Join 和 SubQuery 有什么区别?

php - 检测没有验证码或用户代理的用户是否为人类