【发布时间】:2018-12-19 10:12:19
【问题描述】:
我编写了一些 sql 查询来从 postgresql 数据库生成数据。当我尝试搜索一个单词时(例如 work)它可以工作,但是如果我对 bigint(例如 45)执行相同的操作,我没有得到任何结果。我收到以下错误:警告:pg_num_rows() 期望参数 1 是资源,在 require() 中给出布尔值。 参见数据库的小提琴 它可能与它是一个 bigint 的事实有关吗?是否有不同的定义。
$table = "test";
$field="\"number\"";
$text = "45"; # $text = 45;
$query = "SELECT DISTINCT \"number\", \"word\", \"sentence\", lower(\"sentence\") FROM \"" . $table . "\" WHERE ";
$query = $query . $field . " ~* '" . $text . "' ";
echo $query;
$recordset = pg_query($connection, $query);
if($recordset)
{
$row = pg_numrows ($recordset);
var_dump($row);
}
表测试定义:
CREATE TABLE "test" (
"id" SERIAL,
"number" BIGINT NOT NULL,
"word" VARCHAR,
"sentence" VARCHAR
);
INSERT INTO test (id, number, word, sentence) VALUES
(1, "451", 'make', 'I will make you great'),
(2, "45", 'new', 'Is this new ?'),
(3, "57", 'work', 'I always work very hard'),
(4, "48", 'sell', 'Are you going to sell your house'),
(5, "781", 'feel', 'Do you feel well?')
【问题讨论】:
-
您能否请edit 您的帖子并添加
$query中的SQL?还请添加表test的定义。奇怪的是,您尝试将具有建议名称number的字段与期望列number具有字符串类型的查询进行比较。此外,您的代码有一个错字 - 您设置了$talbe,但您在查询字符串中使用了$table。 -
添加 $query 的 SQL 是什么意思?
-
您的代码中有
echo $query;。它输出什么?请将该输出添加到您的 pst。 -
它不提供任何输出。我刚刚收到错误消息。
-
我曾经遇到过同样的问题。所以我将 bigint 更改为 varchar。然后使用 $text = 45;
标签: php sql postgresql