簡體   English   中英

PHP和MySQL不回顯我的變量

[英]PHP and Mysql not echoing my variable

不知道我是否編寫了錯誤的代碼,或者僅僅是因為我有一個非常大的數據庫試圖從中提取。

我沒有收到任何錯誤,但頁面上沒有任何顯示。 數據庫很大,可能會導致我無法找到結果。 我知道郵政編碼在數據庫中,因為我在PHPMYADMIN SQL選項卡中找到了它。

<?php

$location = $user['location'];

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

$longitude = $postcode['Longitude'];

echo $longitude;

?>

我從已經加載的查詢中獲取$user['location'] ,並且頁面上的echo s已在頁面上顯示郵政編碼。

我是PHPMYSQL新手,所以我想嘗試學習,但是當它沒有給我任何錯誤時,將很難找到我想要的東西。

非常感謝-Jonny Dommett

編輯-表架構

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) { }

編輯-PHP MYADMIN中的SQL

在此處輸入圖片說明

編輯-問題=已修正

問題出自我在數據庫中輸入數據的地方。 確保通過執行VARDUMP檢查列,然后首先查看結果。

您的錯誤是由於在變量$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設置$location靜態值,以確保提供的代碼有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM