0

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



?>
4

1 回答 1

1

这里有一些潜在的问题:

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

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

这部分代码完全没有做任何事情,实际上是您的问题所在。

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

}

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

很可能您可以通过单个查询来执行此操作,如果您解释您实际尝试做的事情可能会有所帮助。

你不应该使用mysql_*函数。它们已被弃用。使用mysqliPDO代替。

于 2013-05-09T17:50:45.753 回答