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

时间:2013-05-09 17:39:48

标签: php arrays php-5.3

我有问题。我有一个来自数据库的值数组,当我尝试将它传递给带逗号的字符串时,它在我的localhost上工作正常,但是当我将它上传到我的在线服务器时,该字符串不显示任何值。例如: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.")";



?>

1 个答案:

答案 0 :(得分:1)

这里有许多潜在的问题:

您没有处理数据库访问的错误情况,因此如果您遇到问题则永远不会知道。

您的第二个选择查询未在WHERE子句中指定字段,因此它将永远不会起作用

这部分代码绝对没有任何内容,事实上你可能存在问题所在。

foreach($cat_titles as $v)
{
    $cat_titles[]= $row['id'];

}

这里$ row ['id']没有值,所以你基本上是循环你现有的数组并将空值附加到新索引。

您很可能只使用一个查询来执行此操作,如果您解释实际上要执行的操作,则可能会有所帮助。

您不应该使用mysql_*功能。它们已被弃用。请改用mysqliPDO