在 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
值?
我一直在尝试为我的网站创建搜索,当我尝试使用
中的变量时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
值?