PHP: заменить «переменную» из запроса MySQL (содержимое таблицы) - PullRequest
0 голосов
/ 08 февраля 2012

Я пытаюсь отобразить переменную из запроса MySQL, например:

<?php
...//FYI: mysql connection already established
//Table: title 
//col: page | title
//row: html | "$domain_name: Welcome"

$page_id = basename(getcwd());
$domain_name = "Name of My Domain";

$sql = "SELECT title FROM mydatabase.title WHERE page = '$page_id' ";
//The query's result is 1 row
$dbq = mysql_query ($sql);
$dba = mysql_fetch_array( $dbq );
echo $dba["title"];
//it outputs: $domain_name: Welcome", instead of "Name of My Domain: Welcome"
?>

Что я делаю не так?Я пытаюсь заменить «переменную [$ domain_name] в содержимом таблицы на ее значение php. -Я думал (двойные кавычки) должны заменить переменную на ее значение.

PS.Я новичок

РЕДАКТИРОВАТЬ 2/7/2012, 15:14: забыл упомянуть. Запрос работает нормально. $ dba ['title'] имеет "$ domain_name: Welcome" в качестве значения.Проблема в том, что он не заменяет $ domain_name

Ответы [ 2 ]

3 голосов
/ 08 февраля 2012

Я думал, что "(двойные кавычки) должны заменить переменную ее значением.

Это работает только в том случае, если вы указали строку в своем коде. Если строка пришла извне - она ​​не имеет такого магического поведения.

Таким образом, единственное решение, с которым вы могли бы пойти, это:

echo str_replace('$domain_name', $domain_name, $dba["title"]);

Или вы можете использовать какой-нибудь шаблонизатор, например Twig или Smarty, и рассматривать значение вашей базы данных как шаблон, а свои переменные - как данные.

1 голос
/ 08 февраля 2012

Вы можете заменить его на уровне базы данных:

$sql = 'SELECT REPLACE(title, \'$domain_name\',\''.$domain_name.'\') as title FROM mydatabase.title WHERE page = '.intval($page_id);
//The query's result is 1 row
$dbq = mysql_query ($sql);
$dba = mysql_fetch_array( $dbq );
echo $dba["title"];

(обратите внимание на одинарные кавычки)

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