PHP数组到字符串不能工作的在线服务器


php array to string not working online server

我有一个问题。我有一个数组值从数据库,当我试图传递给一个带逗号的字符串,它在我的本地主机上工作得很好,但当我把它上传到我的在线服务器,字符串不显示任何值。例如: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_*函数。它们已被弃用。使用mysqliPDO代替。