我正在尝试开发一个基本的搜索系统,并且我的pdo语句在我的$ _SESSION中添加了一个问题。
我得到的错误:
注意:未定义索引:其中in - > $ readNews = $ pdo-> prepare(“SELECT * from news $ _SESSION [where] ORDER BY data”);
警告:PDOStatement :: execute(): SQLSTATE [HY093]:参数号无效:绑定变量数与 - > $中的令牌数量不匹配readNews->执行();
有人看到我做错了吗?
if(isset($_POST['sendForm']))
{
$search = $_POST['search'];
if(!empty($search) && $search != 'Title:')
{
$_SESSION['where'] = "WHERE title LIKE ?";
}
else
{
unset($_SESSION['where']);
}
}
PDO声明:
$readNews = $pdo->prepare("SELECT * from news $_SESSION[where] ORDER BY date");
$readNews->bindValue(1, "%$search%");
$readNews->execute();
我已经使用普通的mysql做了这个,就像这样,它正在工作:
“select * from news {$ _SESSION [where]} ORDER BY date DESC”;
但现在我正在尝试使用PDO ..
答案 0 :(得分:1)
未定义索引:表示$ _SESSION数组中没有此类项目
答案 1 :(得分:0)
$_SESSION[where]
应为{$_SESSION['where']}
其他明智的翻译试图找到where
为常数。
if(isset($_POST['sendForm']))
{
$search = $_POST['search'];
if(!empty($search) && $search != 'Title:')
{
$_SESSION['where'] = "WHERE title LIKE ?";
}
else
{
$_SESSION['where']='';//changed here because you are trying to access it
}
}
和
$readNews = $pdo->prepare("SELECT * from news {$_SESSION['where']} ORDER BY date");