PHP и Mysql не повторяют мою переменную

Не уверен, что я неправильно закодировал это или просто потому, что у меня очень большая база данных, из которой я пытаюсь получить информацию.

Я не получаю никаких ошибок, но на странице ничего не отображается. Имеет проблему с большой базой данных, которая может помешать мне найти результат. Я знаю, что почтовый индекс находится в базе данных, как я нашел в PHPMYADMIN SQL Вкладка.

<?php

$location = $user['location'];

$postcode = DB::query("SELECT * FROM postcodes WHERE Postcode LIKE '%" . $location . "%'");

$longitude = $postcode['Longitude'];

echo $longitude;

?>

Я получаю $user['location'] из запроса, который уже загружен в и echos на странице показывает почтовый индекс на странице уже.

Я очень новичок в PHP а также MYSQL поэтому я пытаюсь учиться, но когда это не дает мне никаких ошибок, это очень затрудняет поиск того, что я ищу.

большое спасибо
— Джонни Домметт

РЕДАКТИРОВАТЬ — Схема таблицы

id          int(11)         NO      PRI     NULL    auto_increment
Postcode    varchar(8)      NO              NULL
Latitude    decimal(9,6)    NO              NULL
Longitude   decimal(9,6)    NO              NULL

РЕДАКТИРОВАТЬ — PDO

    <?php
class DB{

private static function connect(){
$pdo = new PDO('mysql:host=localhost;dbname=vapoural_wsc;charset=utf8','testing','testing123');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $pdo;

}
public static function query($query, $params = array()){
$statement = self::connect()->prepare($query);
$statement->execute($params);


if (explode(' ', $query)[0] == 'SELECT') {
$data = $statement-> fetchAll();
return $data;
}

}
}

?>

РЕДАКТИРОВАТЬ — VAR DUMP

var_dump($postcode);

производится в результате

array(0) { }

РЕДАКТИРОВАТЬ — SQL ВНУТРИ PHPMYADMIN

введите описание изображения здесь

РЕДАКТИРОВАТЬ — ВЫПУСК = ИСПРАВЛЕНО

Проблема была в моей базе данных, где я ввел свои данные. Убедитесь, что проверили свои столбцы, выполнив VARDUMP, чтобы увидеть, к чему это приведет.

0

Решение

Ваша ошибка произошла из-за вашей опечатки в переменных $longitude/$logitude и в ключе массива Logitude,

Вот рабочий код, протестированный на моей машине.

<?php
class DB{
private static function connect(){
$pdo = new PDO('mysql:host=localhost;dbname=vapoural_wsc;charset=utf8','testing','testing123');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $pdo;

}
public static function query($query, $params = array()){
$statement = self::connect()->prepare($query);
$statement->execute($params);
if (explode(' ', $query)[0] == 'SELECT') {
$data = $statement-> fetchAll();
return $data;
}
}
}


$location = '4200';
$query = "SELECT * FROM postcodes WHERE Postcode LIKE ?";
var_dump(DB::query($query, ['%'.$location.'%']));

Выход :

array(1) {
[0]=>
array(8) {
["id"]=>
string(1) "1"[0]=>
string(1) "1"["Postcode"]=>
string(5) "42000"[1]=>
string(5) "42000"["Latitude"]=>
string(4) "2344"[2]=>
string(4) "2344"["Longitude"]=>
string(4) "2334"[3]=>
string(4) "2334"}
}

Вывод является примером случайных данных, которые я вставил в свою базу данных.

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

В этом коде я установил $location статическое значение, чтобы убедиться, что предоставленный код работает.

1

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

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

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