mysql — PHP SQL — необходимо изолировать, поскольку это влияет на остальную часть страницы

Я знаю, что Mysql не рекомендуется по очевидным причинам, но я не решил продолжать его использовать.

<?php

if (!mysql_select_db('dobhost_databaseexamplename', $con)) {
echo 'Could not select database';
exit;
}

$sql = ("SELECT * FROM sections WHERE recid = '" .$page. "'");
$result = mysql_query($sql, $con);

if (!$result) {
echo "DB Error, could not query the database\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}

while ($row = mysql_fetch_assoc($result)) {
?>
<title>Carpets - <?php echo $row['title'];?></title>
<meta name="description" content="<?php echo $row['descr'];?>" />
<meta name="keywords" content="<?php echo $row['keywords'];?>" />
<?php
}

mysql_free_result($result);
?>

этот код отлично работает как включение, его соединение с базой данных установлено в другом месте, но все работает нормально, единственная проблема заключается в том, что, когда я включаю его в заголовок шаблона, он разбивает весь код php под ним — есть ли способ изолировать мой запрос и php эхо, чтобы они не влияли на содержание ниже?

Большое спасибо!

-2

Решение

Оберните его в функцию, возможно, вы определяете переменные, которые позже будут использованы в другом скрипте.

Также цикл может быть плохой идеей, вы можете получить несколько титровальных элементов.

echo 'Could not select database';
exit;

Это тоже плохо, просто сгенерируйте исключение так: throw new \Exception('Could not select database');

<?php
function getMetaTags($pageId) {
global $con;

if (!mysql_select_db('dobhost_databaseexamplename', $con)) {
throw \Exception('Error selecting db');
}

$sql = (sprintf("SELECT * FROM sections WHERE recid = %d", $pageId));
$result = mysql_query($sql, $con);

if (!$result) {
throw new \Exception(mysql_error(), mysql_errno());
}

if(!$row = mysql_fetch_assoc($result)) {
throw new \Exception(sprintf('Page with id %d not found', $pageId);
}

return sprintf('<title>Carpets - %s</title>
<meta name="description" content="%s" />
<meta name="keywords" content="%s" />', $row['title'], $row['descr'], $row['keywords']);
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]