SQL PDO "@P1" 附近的语法错误
SQL PDO Wrong syntax near "@P1"
我尝试在 PDO 中使用 LIMIT SQL。
我的代码是这样的:
$sql = "SELECT * FROM TblWerte LIMIT :limit1";
$result = $db->prepare($sql);
$result->bindParam(':limit1', $limit1);
$limit1 = 15;
$result->execute();
但是当我写 $result->execute();我不断收到此错误:
PHP Fatal error: Uncaught PDOException: SQLSTATE[42000]:
[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Falsche Syntax
in der Nähe von "@P1". in C:...\werte.php:96
Stack trace:
0 C:\...\werte.php(96): PDOStatement->execute()
1 {main}
thrown in C:\...\werte.php on line 96
第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();
LIMIT
子句不是标准 SQL 的一部分。 MySQL、PostgreSQL 和 SQLite 支持它作为 SQL 的供应商扩展。
SQL 服务器有类似的东西: TOP
$sql = "SELECT top :limit1 * FROM TblWerte";
$result = $db->prepare($sql);
$result->bindParam(':limit1 ', $limit1);
$limit1 = 15;
$result->execute();
我尝试在 PDO 中使用 LIMIT SQL。
我的代码是这样的:
$sql = "SELECT * FROM TblWerte LIMIT :limit1";
$result = $db->prepare($sql);
$result->bindParam(':limit1', $limit1);
$limit1 = 15;
$result->execute();
但是当我写 $result->execute();我不断收到此错误:
PHP Fatal error: Uncaught PDOException: SQLSTATE[42000]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Falsche Syntax in der Nähe von "@P1". in C:...\werte.php:96
Stack trace:
0 C:\...\werte.php(96): PDOStatement->execute()
1 {main}
thrown in C:\...\werte.php on line 96
第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();
LIMIT
子句不是标准 SQL 的一部分。 MySQL、PostgreSQL 和 SQLite 支持它作为 SQL 的供应商扩展。
SQL 服务器有类似的东西: TOP
$sql = "SELECT top :limit1 * FROM TblWerte";
$result = $db->prepare($sql);
$result->bindParam(':limit1 ', $limit1);
$limit1 = 15;
$result->execute();