我尝试将limit与pdosql结合使用。
我的代码是:
$sql = "SELECT * FROM TblWerte LIMIT :limit1";
$result = $db->prepare($sql);
$result->bindParam(':limit1', $limit1);
$limit1 = 15;
$result->execute();
但是当我写$result->execute()时;我经常会遇到这样的错误:
php致命错误:未捕获pdoexception:sqlstate[42000]:[microsoft][odbc driver 17 for sql server][sql server]falsche-syntax in der nä他叫“@p1”。在c中:…\werte。php:96
堆栈跟踪:
0 c:\…\werte.php(96):pdostatement->execute()
1{main}
在第96行的c:\…\werte.php中抛出
第96行是“$result->execute();”
我已经试过不同的方法了 bindValue()
而不是 bindParam()
,我尝试直接解析值 "limit1"
转换为整数 bindParam()
...
我不得不用top代替limit。我还必须删除bindparams()部分。
$sql = "SELECT TOP 15 * FROM TblWerte ORDER BY ID DESC";
$result = $db->prepare($sql);
$result->execute();
1条答案
按热度按时间k2arahey1#
这个
LIMIT
子句不是标准sql的一部分。mysql、postgresql和sqlite支持它作为sql的供应商扩展。sql server具有类似的功能:TOP
```$sql = "SELECT top :limit1 * FROM TblWerte";
$result = $db->prepare($sql);
$result->bindParam(':limit1 ', $limit1);
$limit1 = 15;
$result->execute();