Я использую функцию include. Я хочу знать уровень его использования. придя к делу, у меня есть страница под названием hitcounter.php, где я хочу знать, сколько хитов было сделано на этой странице в моем приложении. Итак, я создал hitcounter.php
Моя проблема заключается в том, что я включил этот hitcounter.php на одной из моих страниц, где я хочу знать, что это такое, и хранить его в db. В hitcounter.php i включить dbconnection.php.Когда я вошел в мое приложение, и я попал на эту конкретную страницу, где я включаю hitcounter.php, он дает ошибку, если не выбрана база данных.
Из всего моего 2,8-летнего опыта я впервые получил эту ошибку, но я не нашел ответа на этот вопрос.
Мой hitcountercode:
include"dbconnection.php"; //Adds one to the counter mysql_query("UPDATE counter SET patient_dashboard = patient_dashboard + 1")or die (mysql_error()); //Retreives the current count $count = mysql_fetch_row(mysql_query("SELECT patient_dashboard FROM counter"))or die(mysql_error()); //Displays the count on your site print "$count[0]";
Вот как я включаю hit counter.php
<?php include"../includes/subpageheader.php"; include"../includes/hitcounter.php"; ?>
в<?php include"../includes/subpageheader.php"; include"../includes/hitcounter.php"; ?>
Код подключения mydatabase:
$conn=mysql_connect('localhost','root',''); //echo $conn."<br/>"; $db=mysql_select_db('health');
Я хочу знать, сколько уровней, которые мы используем, включает функцию в php.
Итак, как решить эту ошибку, кто-нибудь может мне помочь.
Включают
Объяснение по INCLUDE
из документации php, найденной здесь .
Файлы включаются в зависимости от заданного пути к файлу или, если ни один не указан, указан путь include_path. Если файл не найден в include_path, включите, наконец, проверите собственный каталог вызывающего сценария и текущий рабочий каталог перед сбоем. Конструкция include будет выдавать предупреждение, если он не может найти файл; это другое поведение от require, которое испустит фатальную ошибку.
Вы можете очистить свои приложения, используя root directory
с функцией $ _SERVER ['DOCUMENT_ROOT'] и функцией file_exists () , а затем создайте путь к файлу. Например…
<?php $my_root = $_SERVER['DOCUMENT_ROOT']; $subpageheaderphp = $my_root . "/direct/path/to/file/from/root/subpageheader.php"; if(file_exists($subpageheaderphp)){include $subpageheaderphp;}else{echo "subpageheader in directory $subpageheaderphp could not be found <br/>";} $hitcounterphp = $my_root . "/direct/path/to/file/from/root/hitcounter.php"; if(file_exists($hitcounterphp)){include $hitcounterphp;}else{echo "hitcounterphp in directory $hitcounterphp could not be found <br/>";}
Пример PHP … Ниже представлена файловая структура, которую я буду использовать для стимуляции включения другого файла.
Файловая структура http://img.ruphp.com/php/0rq4g0tc.e0r.png
Содержание IncludeFrom.php
<?php $DownStructure = "../../../includeTo.php"; echo "Including from the current directory: ".$DownStructure."<br/>"; if(file_exists($DownStructure)){include $DownStructure;} $UpStructure = $_SERVER['DOCUMENT_ROOT']."/start/includeTo.php"; echo "<Br/>Including from first directory: ".$UpStructure."<br/>"; if(file_exists($DownStructure)){include $UpStructure;}
Содержание includeTo.php
<?php echo "<b>IncludeTo.php</b> was included!!"; ?>
Результаты PHP
результаты http://img.ruphp.com/php/tv4cumnu.xn3.png
Преимуществом этого является то, что гораздо легче отслеживать и перемещаться по файлам в структуре папок. Поступая таким образом, вы будете включать в себя базу приложения, которая не потребует от вас навигации вниз уровней, а вместо этого уровней через структуру вашего сайта. Хотя любое решение в порядке. Разница между $DownStructure
и $UpStructure
заключается в том, что $DownStructure
является относительным путем, тогда как $UpStructure
является абсолютным.
Не выбрана ошибка базы данных
Было бы очень простое решение для вашей базы данных, которая не будет выбрана. Чтобы обновить ваши queries
чтобы включить базу данных, например SELECT * FROM mydatabase.mytable WHERE column = 'value'
или в синтаксисе php SELECT * FROM $database.$table
, где $database
и $table
хранят необходимую информацию о том, где вы хотите идти.
В приведенном ниже примере я вставляю несколько значений в адрес таблицы с SalesLT
базой данных SalesLT
.
INSERT INTO SalesLT.Address (AddressLine1, City, StateProvince, CountryRegion, PostalCode) VALUES ('75 W. 66th Street ',' New York ',' NY ',' United States ',' 10023 ')
Адресная таблица
CREATE TABLE IF NOT EXISTS `address` ( `AddressLine1` varchar(200) NOT NULL, `City` varchar(200) NOT NULL, `StateProvince` varchar(200) NOT NULL, `CountryRegion` varchar(200) NOT NULL, `PostalCode` varchar(200) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Результаты PhpMyAdmin. Я не выбрал primary database
для использования, но мой запрос выбрал свою database
для insert query
.
phpmyadmin http://img.ruphp.com/php/emyog4u5.lrd.png
Php с помощью следующего кода. В приведенном ниже примере вы никогда не выбираете database
с mysql_select_db .
<?php $conn = mysql_connect("localhost", "root", "") or die(mysql_error()); echo "Connected to MySQL<br />"; $result = mysql_fetch_array(mysql_query("SELECT * FROM SalesLT.Address")); echo "<pre>";print_r($result);echo"</pre>"; phpinfo(); ?>
Результаты…
php test http://img.ruphp.com/php/ihnd52op.qf4.png
Преимущества включения database
в ваши запросы, вы можете выполнять кросс-серверные запросы. И пока вы подключены к database
ваши запросы будут идти там, где вы укажете . Это намного эффективнее, чем выбор primary database
с помощью функции mysql_select_db в php.
Мне кажется, что ваша ошибка не имеет никакого отношения к включению, проблема в том, что вы не выбираете базу данных, посмотрите на этот пример:
<?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) { die('Not connected : ' . mysql_error()); } // make foo the current db $db_selected = mysql_select_db('foo', $link); if (!$db_selected) { die ('Can\'t use foo : ' . mysql_error()); } ?>