【发布时间】:2013-05-14 19:18:35
【问题描述】:
我有一些 PHP 代码:
$categories = mysql_query("SELECT category_id, category_name AS categories FROM categories");
while ($row = mysql_fetch_assoc($categories)){
$columnvalues[] = $row['categories'];
}
$catlist = $columnvalues[0];
$catchq = mysql_query("SELECT message AS message FROM box WHERE LOWER(message) LIKE '".$catlist."'");
$catchr = mysql_fetch_array($catchq);
$catchx = $catchr['message'];
echo $catchx."\n";
上面的代码按预期工作,但仅适用于 [0] 匹配并且消息包含 [0] 的类别名称。我想要完成的是让第二个查询查找在第一个查询中找到的四个类别中的任何一个。
我如何将它与 [1]、[2]、[3] 匹配?我尝试了 OR 运算符,但它并没有像我想象的那样工作(例如$catlist = $columnvalues[0] or $columnvalues[1];)
【问题讨论】:
-
不要使用 MySQL 函数,而是使用 MySQLi
-
@savafa 为什么?我的意思是,我知道为什么,但只是这么说而不解释为什么并没有多大用处。此外,这并不重要——他不会将任何用户提供的数据放入查询中,因此不存在注入风险。
-
@sgroves,真的不全是因为注入风险,MySQL 已弃用,不再支持,迟早会被删除。
-
首先应该说 :P 顺便说一句 mysqli 也很烂;没有理由不只使用 pdo,除非性能差异在您的应用程序中很重要(在这种情况下......为什么要使用 php?)
标签: php mysql arrays variables