PHP MYSQL-значение Echo mysql, содержащее переменную PHP?
Я пытаюсь получить переменную для отображения, когда она используется как часть значения внутри таблицы mysql.
$variable = 'cool';
MYSQL FIELD VALUE
"This is '.$variable.' wow"
Когда я повторяю это значение, оно отображается как:
This is '.$variable.' wow
Я хочу, чтобы он отображался как:
This is cool wow
В чем тут фокус?
@Mark извините, я новичок в этом
$linkQuery3 = 'SELECT model
FROM models
WHERE model_id = "'.$pageModel.'"
';
$sql15 = mysql_query($linkQuery3) or die(mysql_error());
if (mysql_num_rows($sql15) == 0) {
die('No results.');
} else {
while($row = mysql_fetch_assoc($sql15)) {
$model = stripslashes($row['model']);
}
}
$linkQuery2 = 'SELECT l.link , l.desc , l.domId , d.domain FROM links l INNER JOIN domains d ON d.domId = l.domId WHERE l.catId="'.$pageCat.'" && (l.modId="1" || l.modId="'.$pageModel.'") ORDER BY domain
';
$sql3 = mysql_query($linkQuery2) or die(mysql_error());
if (mysql_num_rows($sql3) == 0) {
die('No results.');
} else {
$pageContent .= '';
while($row = mysql_fetch_assoc($sql3)) {
$linkAd = ($row['link']);
$linkDesc = ($row['desc']);
$linkDomain = ($row['domain']);
$pageContent .= '
<li><a href="'.$linkAd.'" target="_tab">'.$linkDesc.' '.$linkDomain.'</a></li>
';
}
}
5 ответов:
Здесь вы пытаетесь воспроизвести строку из базы данных, но заменяете текст-заполнитель определенным значением. Вы не можете сделать это, просто сохраняя строку, которую анализатор PHP обработает определенным образом, и ожидая, что PHP обработает ее таким же образом, когда он видит эту строку во время выполнения.
Вот что я предлагаю: используйте более простой разделитель для части строки, которую вы хотите заменить, например:
"This is :variable: wow"
И используйте
str_replace()
, чтобы повторить правильную вещь. (Вы можете также используйтеsprintf()
для той же цели.)echo str_replace(':variable:', $variable, $mystring);
(здесь
$mystring
содержит строку из базы данных.)
Вам нужно будет
eval()
строка, которую вы получаете из MySQL. Нет другого способа получить строку, которая будет интерпретироваться как PHP-код. однако eval() следует избегать любой ценой. Вам было бы лучше использовать систему шаблонов или простую систему подстановки строк, чем eval()ING материал, выходящий из базы данных.
Это может быть чертовски проще. Просто сделай это...
echo "This is '$variable' wow";
Это все, что вам нужно. Нет необходимости покидать контекст строки и возвращаться обратно. Внешние двойные кавычки будут оценивать значение переменной. Если бы вы использовали одинарные кавычки снаружи, то он был бы оценен буквально как $variable, а не его значение.
Таким образом, вы бы написали оператор select следующим образом:
$sql = "SELECT * FROM fancytbl WHERE id = '$id' AND myhands = 'diamonds'";
Смотрите, это просто.