Wordpress在wordpress页面上搞乱我的db调用?

时间:2011-04-12 15:43:29

标签: php mysql wordpress

嘿,大家好吗?我有数据库冲突,我想要一些帮助。

基本上,我有一个引入随机数据库字段的标题。没什么特别的。它位于我模板的标题中,可以在非WordPress页面上正常工作。

$sql = "SELECT * FROM headerslogans ORDER BY RAND() LIMIT 1";
    $result = mysql_query($sql);
    while ($myrow = mysql_fetch_array($result)) {
    echo $myrow['slogan'];
};

我使用相同的数据库,相同的用户名,相同的密码等。但是,我得到这个错误,其中回声应该是....

Warning: mysql_query() [function.mysql-query]: Access denied for user 'nobody'@'localhost' (using password: NO) in <dir name>

显然,wordpress连接“覆盖”另一个(wordpress完美无缺)。但是,我也很困惑,为什么它不起作用,虽然它使用相同的用户名和密码连接到同一个数据库。

有人可以帮我解决这个问题吗?

更新:已发布连接代码

$ x = mysql_connect($ server,$ dbuser,$ dbpass,true)或die(mysql_error()); mysql_select_db($ DBNAME,$ X);

2 个答案:

答案 0 :(得分:1)

正如你所说,连接被覆盖了,数据库选择是否也被覆盖了?实际上mysql_select_db()可能会让你感到困惑。通过将原始连接设置为变量并在有问题的mysql_ *函数中引用它来修复它,例如:

$dbcnct = mysql_connect(...);
mysql_select_db('...', $dbcnct);
mysql_query('...', $dbcnct);

这不应该影响您当前的设置。

答案 1 :(得分:1)

@NarfFlarf:您可以使用WordPress查询来获取数据 -

$sql = "SELECT * FROM headerslogans ORDER BY RAND() LIMIT 1";
$result = $wpdb->get_results($sql);
foreach ($myrow as $result) {
    echo $myrow->slogan;
}

有关详细信息,请参阅this WordPress Codex entry



更新

您可以尝试的其他内容是<img src="slogan.php" alt="">并且在slogan.php内:

<?php
/* Instantiate own, non-WP MySQL connection */
/* Run query and retrieve image */

header("Content-type: image/jpeg");
echo file_get_contents('path/to/image/' . $image); // 'dynamic' image!
?>