在Select语句中获取联盟值(PHP)

在Select语句中获取联盟值(PHP),php,mysql,sql,Php,Mysql,Sql,我在这里有一个查询,以获得球队,并根据他们的联赛筛选他们。我的问题是,在以下代码的console.log中,数据显示正确,但在SELECT语句中,数据不起作用,因为它在下拉列表中没有显示任何内容。当我进行硬编码时,SELECT语句工作正常。知道有什么问题吗。谢谢 代码 $league = ''; if(isset($_POST['selected'])): $league = $_POST['selected']; endif; $home_team = $dbh->prepar

我在这里有一个查询,以获得球队,并根据他们的联赛筛选他们。我的问题是,在以下代码的console.log中,数据显示正确,但在SELECT语句中,数据不起作用,因为它在下拉列表中没有显示任何内容。当我进行硬编码时,SELECT语句工作正常。知道有什么问题吗。谢谢

代码

$league = '';

if(isset($_POST['selected'])):
   $league = $_POST['selected'];
endif;

$home_team = $dbh->prepare("SELECT * FROM teams WHERE competition = :league");

echo "<script>console.log($league)</script>";
$home_team->execute([ ':league' => $league ]);

FWIW,这对我来说很好

<?php
/*
DROP TABLE IF EXISTS teams;

CREATE TABLE teams
(team_id SERIAL PRIMARY KEY
,team VARCHAR(30) NOT NULL UNIQUE
,competition VARCHAR(30)
);

INSERT INTO teams VALUES
(1,'Arsenal','Premiership'),
(2,'Chelsea','Premiership'),
(3,'Crystal Palace','Premiership'),
(4,'QPR','Championship'),
(5,'Greenwich Borough','Isthmian');
*/


require('path/to/pdo/connect.ion');

$league = '';

$_POST['selected'] = 'Premiership';

if(isset($_POST['selected'])):
   $league = $_POST['selected'];
endif;

//'$pdo' is my connection object
$home_team = $pdo->prepare("SELECT * FROM teams WHERE competition = :league");

echo "<script>console.log($league)</script>";
$home_team->execute([ ':league' => $league ]);

$data  = $home_team->fetchAll();
print_r($data);
?>


1。您对SQL注入2是开放的。您在处理3时没有错误$联盟可能没有价值4。您需要了解服务器端和客户端编程,因为您的执行顺序显然不正确。正在控制台中检索值。如果您的问题是输出不正确;如果您展示该代码,可能会有所帮助?我的问题是,我给出的代码在SELECT语句中是否正确,因为在console.log中它被正确输出。这是否回答了您的问题?它可以像这样工作,但我正在做这部分
$data=$home\u team->fetchAll()
在另一个php文件中,在我将WHERE clauseI包含在问题WHERE中之前,该文件工作正常。我在获取团队数据的同一个文件中添加了AJAX调用
 $('#input_competition').on('change', function () {
         var selectedLeague = $('#input_competition').find(":selected").text();
           
         $.ajax({
            url: 'queries/view_fixtures_queries.php',
            type: 'POST',
            data: {'selected' : selectedLeague},
            success: function(data) {
                console.log(data);
            }
        });
       });
<?php
/*
DROP TABLE IF EXISTS teams;

CREATE TABLE teams
(team_id SERIAL PRIMARY KEY
,team VARCHAR(30) NOT NULL UNIQUE
,competition VARCHAR(30)
);

INSERT INTO teams VALUES
(1,'Arsenal','Premiership'),
(2,'Chelsea','Premiership'),
(3,'Crystal Palace','Premiership'),
(4,'QPR','Championship'),
(5,'Greenwich Borough','Isthmian');
*/


require('path/to/pdo/connect.ion');

$league = '';

$_POST['selected'] = 'Premiership';

if(isset($_POST['selected'])):
   $league = $_POST['selected'];
endif;

//'$pdo' is my connection object
$home_team = $pdo->prepare("SELECT * FROM teams WHERE competition = :league");

echo "<script>console.log($league)</script>";
$home_team->execute([ ':league' => $league ]);

$data  = $home_team->fetchAll();
print_r($data);
?>