我有一个问题。我有一个数组值从数据库,当我试图传递给一个带逗号的字符串,它在我的本地主机上工作得很好,但当我把它上传到我的在线服务器,字符串不显示任何值。例如:select from table where in (,,)
只显示逗号,在我的xampp服务器中它工作得很好。知道这是什么吗?下面是代码:
<?php
$sql = "select id from users where gid = 1";
$result = mysql_query( $sql);
$cat_titles=array();
while( $row=mysql_fetch_assoc($result) )
{
$cat_titles[] = $row['id '];
// do stuff with other column
// data if we want
}
mysql_free_result( $result );
echo "<p>'n";
foreach($cat_titles as $v)
{
$cat_titles[]= $row['id'];
}
echo "</p>'n";
$cat_titles = implode(',',$cat_titles);
$cat_titles = substr($cat_titles,0,-2);
echo $cat_titles;
echo "select * from users where IN (".$cat_titles.")";
?>
这里有一些潜在的问题:
你没有处理数据库访问周围的错误条件,所以如果你的查询有问题,你永远不会知道。
第二个select查询没有在WHERE子句中指定字段,所以它永远不会工作
这段代码什么也没做,实际上可能就是问题所在。
foreach($cat_titles as $v)
{
$cat_titles[]= $row['id'];
}
这里$row['id']没有值,所以你基本上是在你现有的数组中循环,并将空值附加到新的索引中。
你很可能只用一个查询就能做到这一点,如果你解释一下你实际想做什么,可能会有所帮助。
不应该使用mysql_*
函数。它们已被弃用。使用mysqli
或PDO
代替。