Как получить данные через базу данных MySQL, используя GET в PHP? - PullRequest
0 голосов
/ 23 июня 2018

Я пробовал решения в этом вопросе , однако mysql исключено из mysqli.Даже с этими изменениями он по-прежнему не возвращает информацию, а возвращает ошибку, и ничего больше (ничего не слышно из mysqli)

То, что я пытаюсь сделать, похоже на вопрос, связанный соднако в URL это будет выглядеть так: example.com?view-work=A01 Будет выполнен поиск A01 в базе данных, а затем возвращено имя, описание, URL-адрес изображения и дата его появления.

Это код, который я смог сделать, используя ответы на вопрос:

<?php
//Establishing a connection to the Artwork Database
mysqli_connect('localhost', 'dbuser', 'dbpassword');
mysqli_select_db('db');

$artworkidentifier = $_GET["view_work"];

//Returning the result, if there is one

$artworkidentifier = mysqli_real_escape_string($artworkidentifier);

$sql = "SELECT * FROM ArtDB WHERE art_refcode = '$artworkidentifier'";
$result = mysqli_query($sql);
if (!$result) {
    echo "Something's gone wrong! ".mysqli_error();
}

$data = mysqli_fetch_assoc($result);
echo $data["Artwork_Name"];
echo $data["Artwork_Description"];
echo $data["Artwork_URL"];
echo $data["DateUploaded"];
?>

1 Ответ

0 голосов
/ 23 июня 2018

Кажется, причиной этих ошибок была моя собственная некомпетентность, а также, вероятно, тот факт, что я немного новичок в PHP и MySQL в целом.Я узнал, что мне нужно было сослаться на мое соединение в некоторых командах для их успешной обработки после добавления исключения отладки, упомянутого в комментариях ОП.

Как кто-то также указал, Да, этот код все еще уязвим для другихтипы SQL-инъекций, я рассмотрю их до того, как будет выпущена финальная версия кода.

Фиксированный код:

<?php
//Establishing a connection to the Artwork Database
$link = mysqli_connect('localhost', 'dbusr', 'dbpasswd', 'db');

//Exeptional Debugging

ini_set('display_errors', 1);
ini_set('log_errors', 1);
error_reporting(E_ALL);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

if (!$link) {
    echo "Error: Unable to connect to MySQL!";
    echo "Error No.".mysqli_connect_errno();
    echo "Error in question: ".mysqli_connect_error();
    exit;
}

$artworkidentifier = $_GET["view_work"];

//Returning the result, if there is one

$artworkidentifier = mysqli_escape_string($link, $artworkidentifier);

$sql = "SELECT * FROM ArtDB WHERE art_refcode = '$artworkidentifier'";
$result = mysqli_query($link, $sql);
if (!$result) {
    echo "Something's gone wrong!"; //This line will be changed later to sound more professional
}


$data = mysqli_fetch_assoc($result);
echo $data["Artwork_Name"];
echo $data["Artwork_Description"];
echo $data["Artwork_URL"];
echo $data["DateUploaded"];
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...