在 php mysql 查询中使用会话变量

Using a session variable in a php mysql query with like

我一直在尝试为我的网站创建搜索,当我尝试使用

中的变量时
SELECT size FROM tires WHERE size = $size'

我的搜索没有得到任何结果。我得到的结果是

object(PDO)#@(0) {}

但我不确定为什么。我已经尝试对我的搜索进行硬编码,并且效果很好。我也试过

"SELECT size FROM tires WHERE size LIKE '%$size%'"

如果我使用 fetchAll,这会为我提供数据库中的所有结果。如果我使用 fetch(PDO::FETCH_ASSOC); 并且我只想要我放入搜索框中的结果,它会给我一个部分结果。这是我用于搜索的代码:

    <?php
require('database_connection.php');
$lifetime = 60 * 60 * 24 * 14; //2 weeks in seconds
session_set_cookie_params($lifetime, '/');
session_start();
//require_once('includes/functions.php');
include('index.html');
if(isset($_POST['size'])){
$_SESSION['size'] = $_POST['size'];
$size = $_SESSION['size'];

}




function tiresize() {
     global $db;

if (isset($_POST['size'])){ 
$_SESSION['size'] = $_POST['size'];
$size = $_SESSION['size'];
       // $size=mysql_real_escape_string($size);
       // trim($size);
    }


    if (isset($size)){
    $query = $db->prepare("SELECT size FROM tires WHERE size = '$size'");
    $query->execute();

    $tires = $query->fetchAll();

    foreach ($tires as $name) {
        echo "Tire Size: " .$name['size'];
         if($query) // will return true if successful else it will     return   false 
        { 
            echo 'Query is working';// code here for true
        };}}}
tiresize();



var_dump($db);

?>

var_dump($db) 给出一个对象(PDO)#1(0){}

这是表格:

 <table><form action="search.php" method="post">
<tr><td>
<p>
<label for="searchSize" id="searchSize">Search Size:</label>
</p>
</td><td>
<p>
<input type="text" name="size" id="size" value="<?php echo          $size['size']; ?> " /><br /><br /><br />
<input type="submit" name="size" value="Search" /> 
</p>
</td></tr></form>
</table>

当函数内部使用“global $size;”时,它从全局范围导入$size变量,可能是NULL并覆盖局部$size变量。您是否在 global 语句之后检查了 $size 值?