Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHP在PostgreSQL中为给定用户生成问题_Php_Postgresql - Fatal编程技术网

通过PHP在PostgreSQL中为给定用户生成问题

通过PHP在PostgreSQL中为给定用户生成问题,php,postgresql,Php,Postgresql,我在我的主页上有一个URL列表,如下表所示 <a href="?questions&questions=777">link1</a> <a href="?questions&questions=666">link2</a> 感谢Nos和Jikhan使用$dbconn和 感谢Simon解决了此线程的主要问题 如何从URL中仅获取问题id,以便Postgres理解查询?问题似乎不是查询,而是与数据库的连接(dbconn)问题似乎不是查

我在我的主页上有一个URL列表,如下表所示

<a href="?questions&questions=777">link1</a>
<a href="?questions&questions=666">link2</a>
感谢Nos和Jikhan使用$dbconn和 感谢Simon解决了此线程的主要问题


如何从URL中仅获取问题id,以便Postgres理解查询?

问题似乎不是查询,而是与数据库的连接(dbconn)

问题似乎不是查询,而是与数据库的连接(dbconn)

您的$\u GET语句看起来也很奇怪。我不知道在你的链接中重复“问题”的意义是什么,但如果我们假设你的链接的格式是这样的:

<a href="?questions=777">link1</a>
我相信pg_execute()只是希望值数组按照您在prepare语句中写入它们的顺序。因此,您不需要尝试分配变量$questions\u question\u id-这根本不起作用

我还要确保它包含您期望的内容(即,只是一个ID号)

PHP5.2中提供了过滤器系列函数,可以去除任何不需要的字符。看


如果未设置GET变量,filter\u input()将返回null。

您的$\u GET语句看起来也很奇怪。我不知道在你的链接中重复“问题”的意义是什么,但如果我们假设你的链接的格式是这样的:

<a href="?questions=777">link1</a>
我相信pg_execute()只是希望值数组按照您在prepare语句中写入它们的顺序。因此,您不需要尝试分配变量$questions\u question\u id-这根本不起作用

我还要确保它包含您期望的内容(即,只是一个ID号)

PHP5.2中提供了过滤器系列函数,可以去除任何不需要的字符。看


如果未设置GET变量,filter_input()将返回null。

错误表明$dbconn无效。在哪里连接到数据库?错误表明$dbconn无效。您在哪里连接到数据库?由于我们使用
pg_prepare
,您需要明确的消毒吗?我觉得
pg_prepare
会自动清理输入。清理只会删除危险字符,如分号。它不能保证ID变量实际上是一个数字。为了安全起见,您仍然需要确保ID只是一个整数。筛选传入变量并准备所有SQL总是值得的!为什么确保其为整数对安全性很重要?如果不是,它肯定不会返回任何结果?过滤传入的数据以确保它是您期望的数据是一种很好的做法。不过,您是对的,在本例中,如果您只是匹配ID,它应该不会返回任何内容。更重要的是,在一些示例中,例如在发布注释时,您希望剥离标记以避免类似JavaScript的事情。我在一年多前写了以上内容,所以我想那是我当时的想法!由于我们使用了
pg_prepare
,您需要明确的消毒吗?我觉得
pg_prepare
会自动清理输入。清理只会删除危险字符,如分号。它不能保证ID变量实际上是一个数字。为了安全起见,您仍然需要确保ID只是一个整数。筛选传入变量并准备所有SQL总是值得的!为什么确保其为整数对安全性很重要?如果不是,它肯定不会返回任何结果?过滤传入的数据以确保它是您期望的数据是一种很好的做法。不过,您是对的,在本例中,如果您只是匹配ID,它应该不会返回任何内容。更重要的是,在一些示例中,例如在发布注释时,您希望剥离标记以避免类似JavaScript的事情。我在一年多前写了以上内容,所以我想那是我当时的想法!
$question_id = $_GET['questions'];
$question_id = filter_input(INPUT_GET, 'questions', FILTER_SANITIZE_NUMBER_INT);