ibase_query(): 动态 SQL 错误 SQL 错误代码 = -104 令牌未知
ibase_query(): Dynamic SQL Error SQL error code = -104 Token unknown
我一直在尝试进行搜索筛选,但此错误不断出现,有人可以帮助我吗?
{
require_once('conn.php');
$idata = $_POST["idata"];
$fdata = $_POST["fdata"];
$sql = "Select TOP 10* from cadcli where dtcad between $idata and $fdata";
$query = ibase_query($dbh,$sql) or die (ibase_errmsg());
while ($row = ibase_fetch_object($query)) {
echo $row->COLUNA1."n";}
ibase_free_result($query);
echo "$query";
ibase_close($dbh);
}
问题是 Firebird 不知道关键字 TOP
。 Firebird 2.5 及更早版本中的等价物是 FIRST
. Since Firebird 3, you can also use the SQL standard FETCH
.
使用FIRST
:
select first 10 * from cadcli ...
使用FETCH
:
select * from cadcli ... fetch first 10 rows only
请注意,如果没有 ORDER BY
,顺序是不确定的。
我还注意到您在查询中进行了字符串插值,这使得它容易受到 SQL 注入的攻击。我建议您改用带参数的预准备语句(请参阅 ibase_prepare
and ibase_execute
)。
我一直在尝试进行搜索筛选,但此错误不断出现,有人可以帮助我吗?
{
require_once('conn.php');
$idata = $_POST["idata"];
$fdata = $_POST["fdata"];
$sql = "Select TOP 10* from cadcli where dtcad between $idata and $fdata";
$query = ibase_query($dbh,$sql) or die (ibase_errmsg());
while ($row = ibase_fetch_object($query)) {
echo $row->COLUNA1."n";}
ibase_free_result($query);
echo "$query";
ibase_close($dbh);
}
问题是 Firebird 不知道关键字 TOP
。 Firebird 2.5 及更早版本中的等价物是 FIRST
. Since Firebird 3, you can also use the SQL standard FETCH
.
使用FIRST
:
select first 10 * from cadcli ...
使用FETCH
:
select * from cadcli ... fetch first 10 rows only
请注意,如果没有 ORDER BY
,顺序是不确定的。
我还注意到您在查询中进行了字符串插值,这使得它容易受到 SQL 注入的攻击。我建议您改用带参数的预准备语句(请参阅 ibase_prepare
and ibase_execute
)。