WordPress возиться с моими вызовами БД на страницах WordPress? - PullRequest
0 голосов
/ 12 апреля 2011

Эй, как дела у всех?У меня возникли конфликты с базой данных, с которыми мне нужна была помощь.

По сути, у меня есть заголовок, который вытягивает случайное поле базы данных.Ничего особенного.Он находится в моем заголовке в моем шаблоне и отлично работает на страницах, отличных от WordPress.

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

Я использую ту же базу данных, то же имя пользователя, тот же пароль и т. Д. Однако я получаю эту ошибку, когдаecho должен быть ....

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 ($ имя_бд, $ х);

Ответы [ 2 ]

1 голос
/ 12 апреля 2011

@ NarfFlarf: Вы можете просто использовать запросы WordPress для получения ваших данных -

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

См. эту запись Кодекса WordPress для дальнейшего использования.



Обновление

Возможно, вы можете попробовать еще кое-что - иметь <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!
?>
1 голос
/ 12 апреля 2011

Как вы сказали, соединение перезаписывается, выбор базы данных также перезаписывается? Вполне вероятно, что на самом деле mysql_select_db() это то, что вас подставляет. Исправьте это, установив исходное соединение в качестве переменной и сославшись на это в функциях mysql_ *, например:

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

Это также не должно повлиять на ваши текущие настройки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...