首页 > 解决方案 > 如何在准备好的语句中强制将 int 作为字符串

问题描述

我正在使用 PHP 脚本同步两个 PostgreSQL 数据库。我无法查询整个表,所以我必须使用 id 列来批量抓取记录。

id 列是字符串列,而不是数字。但是,列中有数字 ID。这是我遇到问题的地方。

当我在 PHP 中准备 SQL 语句时,当我碰巧得到一个数字 id 时,当我将它绑定到语句时,它不会在值周围加上引号,因为它认为它是一个 int,而不是一个字符串。

我如何强制它成为一个字符串并始终在 id 周围加上单引号?

如果我把引号放在 ? 在查询中,它将其视为文本,并且参数不会绑定到语句。

正如您在代码中看到的那样,我还尝试将 $start 变量转换为字符串。$start 包含起始 id。

这是代码:

$sql = "select id from properties where id > ? order by id limit ?";
$params = [(string) $start, 50000];
$rows = $this->wolfnet->select($sql, $params);

标签: phppostgresqlpdo

解决方案


推荐阅读