gpt4 book ai didi

php in 子句不适用于准备好的语句

转载 作者:行者123 更新时间:2023-11-29 21:55:10 25 4
gpt4 key购买 nike

我正在尝试使用包含“IN”子句的准备好的语句进行 mysql 查询。这是声明:

$stmt1 = $c->db->prepare("SELECT ITEM_URL,VIRALITY FROM RSSINGEST WHERE userid=(?) AND ITEM_URL IN (SELECT url FROM person_url WHERE person=(?) AND userid=(?))");
$stmt1->bind_param("sss", $userid,$name,$userid);

但是,当准备好的语句错误时,我总是收到错误:“调用成员函数bind_param()...”。

基本上,我试图找到一个用户的所有网址,该用户在另一个表中也有这些网址。在另一个名为“person_url”的表中,每个条目也有一个“person”。我只想要那些有特殊“人”的人,正如你在声明中看到的那样。

也许有人可以告诉我是否还有其他方法可以做到这一点或者错误出在哪里?

编辑1:用户ID是一个字符串,他们的名字可能会产生误导。

编辑2:为两个表创建语句:

  CREATE TABLE IF NOT EXISTS `rssingest` (
`item_id` varchar(500) CHARACTER SET latin1 NOT NULL,
`feed_url` varchar(512) CHARACTER SET latin1 DEFAULT NULL,
`item_title` varchar(255) CHARACTER SET latin1 DEFAULT NULL,
`item_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`item_url` varchar(512) CHARACTER SET latin1 NOT NULL,
`item_category_id` int(11) DEFAULT NULL,
`fetch_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`fb_share` int(11) DEFAULT NULL,
`fb_like` int(11) DEFAULT NULL,
`fb_comment` int(11) DEFAULT NULL,
`tw_count` int(11) DEFAULT NULL,
`pinterest` int(11) DEFAULT NULL,
`linkedin` int(11) DEFAULT NULL,
`googleplus` int(11) DEFAULT NULL,
`stumbleupon` int(11) DEFAULT NULL,
`virality` int(11) DEFAULT NULL,
`userID` varchar(200) COLLATE utf8mb4_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

CREATE TABLE IF NOT EXISTS `people_url` (
`person` varchar(100) CHARACTER SET latin1 NOT NULL,
`url` varchar(500) CHARACTER SET latin1 NOT NULL,
`virality` int(20) NOT NULL,
`insertdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`userID` varchar(200) COLLATE utf8mb4_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

编辑 3:完全错误

Fatal error: Call to a member function bind_param() on a non-object in C:\xampp\htdocs\monitorUser\websiteBuilder.php on line 163

编辑 4:隧道视野的最佳状态。我在声明中写的是person_url而不是people_url。谢谢大家。

最佳答案

$stmt1 中的查询应该是

$stmt1 = $c->db->prepare(
"SELECT item_url, virality
FROM rssingest
WHERE userid=(?)
AND item_url IN (SELECT url FROM people_url WHERE person=(?) AND userid=(?))"
);

关于php in 子句不适用于准备好的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33217662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com