php和mysql不响应我的变量

tsm1rwdh  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(389)

我不确定我是否编码错误,或者只是因为我有一个非常大的数据库,我试图从中提取。
我没有收到任何错误,但是页面上没有显示任何内容。有一个大的数据库是一个问题,可能会阻止我找到我的结果。我知道我在数据库里找到的邮政编码在里面 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显示了页面上的邮政编码。
我是新来的 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转储

var_dump($postcode);

产生的结果 array(0) { } 编辑phpmyadmin中的sql

编辑-问题=已修复
这个问题来自于我的数据库,我在那里输入了我的数据。确保通过执行vardump检查您的列,首先查看结果。

cidc1ykv

cidc1ykv1#

你的错误是因为你的变量输入错误 $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 设置为静态值,以确保提供的代码正常工作。

相关问题