$participants 是 MYSQL 中的 VARCHAR
,看起来像这样 q1qq2qq3qq4qq5qq6q
。我想要的是一个 if 语句
如果找到 q$_SESSION["UserID"]q
则执行,也就是说,我希望它找到 $participants
中的一些输入,例如 q2q<例如
。
我不知道如何写这个。 $_SESSION["UserID"]
是 MYSQL 数据库中的 id 列之一,因此等于一个数字,例如 2。
我在 php 中尝试了以下操作
if(strpos($participants, q$_SESSION["UserID"]q)){
echo "succeeded";
};
但它不起作用。此外,我还希望能够拿走 q$_SESSION["UserID"]q
,以防万一它在那里。我试过了
$participants = preg_replace("q{$_SESSION["UserID"]}q", "", $participants);
但它不起作用。有想法吗?
最佳答案
您可以执行以下操作:
if(strpos($participants, "q" . $_SESSION["UserID"] . "q") !== FALSE){
echo "succeeded";
};
或者您可以在 MySQL 中使用 LIKE
语句,例如
从表中选择*,其中参与者喜欢“%q2q%”;
然而,正如 RiggsFolly 所说,这是一种可怕的数据存储方式。创建一个参与者表,其中包含主键、主表的外键以及参与者 ID。
例如
participantinstanceid int primary key
instanceid int foreign key -> Your instance table
participantid int foreign key -> participant table
这样您就可以根据实例 ID 查询表来获取所有参与者。如果您需要进一步的帮助,我很乐意帮助您建立更好的数据库结构。
关于php - 使用 php 在 VARCHAR 中查找并替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35974724/