【发布时间】:2014-06-24 12:21:06
【问题描述】:
我的代码是:
$text = '12-10-4-32-45-name-sara-x-y-86';
$array = explode('-',$text);
foreach($array as $value) {
$sql = mysql_query("SELECT * FROM `table` WHERE `pid`='$value' ORDER BY `id` LIMIT 3");
while($row = mysql_fetch_array($sql)) {
echo $row['title'];
echo '';
}
echo '';
}
此代码可以正常工作,但如果在 $text 中使用 150 变量,则服务器停机!
如何针对大多数变量优化此代码?!
谢谢
【问题讨论】:
-
使用
IN子句,也许吧?$sql = mysql_query("SELECT * FROM table WHERE pid IN ($in) ...。 (请注意,上面的代码仍然容易受到 SQL 注入的影响。此外,mysql_*函数已被弃用。您应该切换到 MySQLi/PDO 并使用准备好的语句正确转义输入。) -
了解 MySQL IN 子句
-
这个问题可能对你有帮助:stackoverflow.com/questions/8270134/…
-
将所有值放入 1 个字符串变量中,用“,”分隔,然后将其放入查询中。在您的查询中使用 pid IN (......)
-
谢谢,但是对于每个变量 echo 3 标题!怎么修的?!
标签: php variables process foreach while-loop