Наличие проблем с PHP - PullRequest
       14

Наличие проблем с PHP

0 голосов
/ 11 декабря 2018

Имея проблемы с PHP, я скопировал из книги для назначения.

<?php // Script 13.7 - add_quote.php 
/* This script adds a quote. */ 

// Define a page title and include the header: 
define('TITLE', 'Add a Quote'); 
include('templates/header.html'); 

print '<h2>Add a Quotation</h2>'; 

// Restrict access to administrators only: 
if (!is_administrator()) { 
print '<h2>Access Denied!</h2><p class="error">You do not have permission to access this page.</p>'; 
include('templates/footer.html'); 
exit(); 
} 

// Check for a form submission: 
if ($_SERVER['REQUEST_METHOD'] =='POST') { // Handle the form. 

if ( !empty($_POST['quote']) && !empty($_POST['source']) ) { 

// Need the database connection: 
include('../mysqli_connect.php'); 

// Prepare the values for storing: 
$quote = mysqli_real_escape_string($dbc,trim(strip_tags($_POST['quote']))); 
$source = mysqli_real_escape_string($dbc,trim(strip_tags($_POST['source']))); 

// Create the "favorite" value: 
if (isset($_POST['favorite'])) { 
$favorite = 1; 
} else { 
$favorite = 0; 
} 

$query = "INSERT INTO quotes (quote, source, favorite) VALUES ('$quote', '$source', $favorite)"; 
mysqli_query($dbc, $query); 

if (mysqli_affected_rows($dbc) == 1){ 
// Print a message: 
print '<p>Your quotation has been stored.</p>'; 
} else { 
print '<p class="error">Could not store the quote because:<br>' . mysqli_error($dbc) . '.</p><p>The query being run was: ' . $query . '</p>'; 
} 

// Close the connection: 
mysqli_close($dbc); 

} else { // Failed to enter a quotation. 
print '<p class="error">Please enter a quotation and a source!</p>'; 
} 

} // End of submitted IF. 

// Leave PHP and display the form: 
?> 

<form action="add_quote.php" method="post"> 
<p><label>Quote <textarea name="quote" rows="5" cols="30"></textarea></label></p> 
<p><label>Source <input type="text" name="source"></label></p> 
<p><label>Is this a favorite? <input type="checkbox" name="favorite" value="yes"></label></p> 
<p><input type="submit" name="submit" value="Add This Quote!"></p> 
</form> 

<?php include('templates/footer.html'); ?

, который выдает ошибку

Примечание: неопределенная переменная: dbc в C: \ xampp \ htdocs \ CH13 \ add_quote.php в строке 26

Предупреждение: mysqli_real_escape_string () ожидает, что параметр 1 будет mysqli, значение NULL в C: \ xampp \ htdocs \ CH13 \ add_quote.php в строке 26

Примечание: неопределенная переменная: dbc в C: \ xampp \htdocs \ CH13 \ add_quote.php в строке 27

Предупреждение: mysqli_real_escape_string () ожидает, что параметром 1 будет mysqli, значение NULL в C: \ xampp \ htdocs \ CH13 \ add_quote.php в строке 27

Примечание: неопределенная переменная: dbc в C: \ xampp \ htdocs \ CH13 \ add_quote.php в строке 37

Предупреждение: mysqli_query () ожидает, что параметром 1 будет mysqli, ноль задан в C: \ xampp \htdocs \ CH13 \ add_quote.php в строке 37

Примечание: неопределенная переменная: dbc в C: \ xampp \ htdocs \ CH13 \ add_quote.php в строке 39

Предупреждение: ожидается mysqli_acted_rows ()параметр 1 должен быть mysqli, ноль указан в C: \ xampp \ htdocs \ CH13 \ add_quote.php в строке 39

Уведомление: Неопределенная переменная: dbc в C: \ xampp \ htdocs \ CH13 \ add_quote.php в строке 43

Предупреждение: mysqli_error () ожидает, что параметром 1 будет mysqli, ноль задан в C: \ xampp \ htdocs \ CH13\ add_quote.php в строке 43 Не удалось сохранить кавычку, потому что:.

Запускаемый запрос был: INSERT INTO quotes (quote, source, favorite) VALUES ('', '', 0)

Примечание: неопределенная переменная: dbc в C: \ xampp \ htdocs \ CH13 \ add_quote.php в строке 47

Предупреждение: mysqli_close () ожидает, что параметром 1 будет mysqli, ноль задан в C: \ xampp \ htdocs \ CH13 \ add_quote.php в строке 47

РЕДАКТИРОВАТЬ: кажется, это ошибка подключения.в данный момент пытаюсь исправить соединение.АТМ, кажется, я ничего не пытаюсь работает

1 Ответ

0 голосов
/ 11 декабря 2018

$dbc может быть создано include('../mysqli_connect.php'); в строке 23.

Так как первое использование $dbc в строке 26 сообщается как null в предупреждении времени выполнения, тогдачто сценарий include либо не может фактически подключиться к базе данных, либо, возможно, переменная, содержащая ресурс подключения к базе данных, не называется $dbc.

Возможно, добавьте это в конец mysqli_connect.php, чтобы помочь определитьчто не так с попыткой подключения:

if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...