我正在尝试生成一个供变量使用的值数组,但我无法让它工作。我不想“看到”结果。相反,我希望变量“使用”结果。这是我的代码:
$rss_results = mysql_query("SELECT feed_id, feed_url, feed_title, feed_order, feed_page_id FROM user_feeds WHERE ((feed_owner = '" . $_SESSION['UserId'] . "'));");
if ($rss_results) {
while($row = mysql_fetch_array($rss_results))
{
$feed->set_feed_url(print "'".$row[feed_url]."',");
}
}
else {
// something went wrong.
echo mysql_error();
问题在于行:
$feed->set_feed_url(print "'".$row[feed_url]."',");
编辑 1)是的。我知道打印品不属于那里。我之前进行了一些故障排除后忘记将其删除。
2) 我尝试将此代码与名为 SimplePie 的 RSS 解析器一起使用。
3)每个人似乎都同意以下代码有效
$feed->set_feed_url(array("'" . $row['feed_url'] . "',"));
...但事实并非如此。如果我没有访问我的数据库,代码将如下所示......
$feed->set_feed_url(array('http://www.tmz.com/rss.xml', 'feed://rss.cbc.ca/lineup/topstories.xml'));
...效果很好。我正在尝试使用存储在 mysql 数据库中的值来重现这种效果。如果代码有效,那么它就会有效。所以“应该”工作的代码一定有问题。
最佳答案
访问关联数组时,必须将索引名称放在引号内:
而不是
$row[feed_url]
使用
$row['feed_url']
另外,
$feed->set_feed_url(print "'".$row[feed_url]."',");
没有任何意义。如果要将值传递给方法,请传递变量,不要将其打印到屏幕上。
$feed->set_feed_url("'" . $row['feed_url'] . "',");
如果您不希望传递给 $feed->set_feed_url()
的字符串包含在 '
中,只需像常规变量一样传递它即可:
$feed->set_feed_url($row['feed_url']);
更新:
既然你提到你正在尝试传递一个数组,你必须首先初始化它,然后填充它,然后将其发送到方法:
$urls = array();
while ($row = mysql_fetch_array($rss_results)) {
$urls[] = $row['feed_url'];
}
$feed->set_feed_url($urls);
这样做:
$feed->set_feed_url(array("'" . $row['feed_url'] . "',"));
只需将以下内容传递给 $feed->set_feed_url()
:
array(
[0] => String() "'[value of $row['feed_url'] ]',"
)
如果您想在循环的每次迭代中调用一次 $feed->set_feed_url()
,这样就可以正常工作:
while($row = mysql_fetch_array($rss_results)) {
$feed->set_feed_url(array($row['feed_url']));
}
请注意:您应该停止使用mysql_*
函数。它们正在被弃用。而是使用 PDO (从 PHP 5.1 开始支持)或 mysqli (从 PHP 4.1 开始支持)。如果您不确定使用哪一个,read this SO article .
关于php - 变量内的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11849419/