簡體   English   中英

php in子句不適用於准備好的語句

[英]php in clause not working for prepared statement

我正在嘗試使用包含“ 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()...”,這在准備好的語句錯誤時發生。

基本上,我試圖從一個用戶那里找到所有URL,而另一個表中也有這些URL。 在另一個稱為“ person_url”的表中,每個條目也都有一個“ person”。 正如您在聲明中所看到的,我只想要那些帶有特殊“人物”的人。

也許有人可以告訴我是否還有其他方法可以做到這一點,或者錯誤在哪里?

編輯1:userid是一個字符串,它們的名稱可能會引起誤解。

編輯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:完全錯誤

致命錯誤 :在第163行的C:\\ xampp \\ htdocs \\ monitorUser \\ websiteBuilder.php中的非對象上調用成員函數bind_param()

編輯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=(?))"
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM