我有问题。我有一个来自数据库的值数组,当我尝试将它传递给带逗号的字符串时,它在我的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.")";
?>
答案 0 :(得分:1)
这里有许多潜在的问题:
您没有处理数据库访问的错误情况,因此如果您遇到问题则永远不会知道。
您的第二个选择查询未在WHERE子句中指定字段,因此它将永远不会起作用
这部分代码绝对没有任何内容,事实上你可能存在问题所在。
foreach($cat_titles as $v)
{
$cat_titles[]= $row['id'];
}
这里$ row ['id']没有值,所以你基本上是循环你现有的数组并将空值附加到新索引。
您很可能只使用一个查询来执行此操作,如果您解释实际上要执行的操作,则可能会有所帮助。
您不应该使用mysql_*
功能。它们已被弃用。请改用mysqli
或PDO
。