2015-12-10 2 views
1

Мне нужно создать сайт, который позволяет пользователю создавать задание, которое сохраняется в базе данных, а затем все задания могут просматриваться с другой страницы на веб-сайте. Мне удалось заставить это работать, но мне пришлось дублировать весь журнал MySQL, созданный в PHP. Я бы хотел избежать этого дублирования и попытался использовать автозагрузчик, но без успеха. В основном первые 5 переменных повторяются с отдельной страницы, где я добавляю данные в базу данных, и я хотел бы избежать этого, если это возможно. Сам код работает, я просто чувствую, что должен быть способ избежать повторения здесь.Как избежать дублирования кода с помощью php & mysql

<?php 
     $server = '192.168.56.2'; 
     $username = 'student'; 
     $password = 'student'; 



     $schema = 'assignment'; 
     $pdo = new PDO('mysql:dbname=' . $schema . ';host=' . $server, $username, $password); 

       $file ='section3.php'; 
       echo 'Last Edited: ' .date('d/m/Y', filemtime($file)); 
       $results = $pdo->query('SELECT * FROM jobs'); 
       foreach ($results as $row) { 
       echo '<p>' . $row['title']." " . $row['salary'] ." ". $row['location'] ." ". $row['description'].'</p>'; 
       } 
       ?> 
+0

введите код в один файл и используйте include? –

+0

или поместите код в один файл и добавьте путь к файлу в файле auto_prepend_file в файле php.ini и перезапустите php –

ответ

1

Обычный подход заключается в размещении данных подключения к базе данных (и обычно код, который создает соединение) в отдельный файл, а затем require_once() этот файл на каждой странице, который должен подключиться к db. например:

db_connect.php:

<?php 
    $server = '192.168.56.2'; 
    $username = 'student'; 
    $password = 'student'; 

    $schema = 'assignment'; 
    $pdo = new PDO('mysql:dbname=' . $schema . ';host=' . $server, $username, $password); 

otherpage.php:

<?php 
    require_once 'db_connect.php'; 
    $file ='section3.php'; 
    echo 'Last Edited: ' .date('d/m/Y', filemtime($file)); 
    $results = $pdo->query('SELECT * FROM jobs'); 
    foreach ($results as $row) { 
    echo '<p>' . $row['title']." " . $row['salary'] ." ". $row['location'] ." ". $row['description'].'</p>'; 
    } 
    ?> 

Как обычно, я оставляю обработку ошибок в качестве упражнения для читателя.

+0

Большое спасибо за это, я надеялся на простой ответ и получил один! –

1

Поместите учетные данные БД в отдельный PHP-файл и require_once его из каждого сценария, где это необходимо

db.php:

$server = '192.168.56.2'; 
$username = 'student'; 
$password = 'student'; 

index.php:

require_once('db.php'); 
$schema = 'assignment'; 
$pdo = new PDO('mysql:dbname=' . $schema . ';host=' . $server, $username, $password); 
// ... 

Также RTM на разнице между

  • включают
  • include_once
  • требуют
  • require_once
+0

Спасибо за помощь, которую действительно оценили! –

Смежные вопросы