首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysqli_query():无法获取mysqli

mysqli_query():无法获取mysqli
EN

Stack Overflow用户
提问于 2014-11-25 20:38:07
回答 1查看 397关注 0票数 0

我一直在检查这个错误,但没有针对我的代码的具体解决方案。我已经使用mysqli_connect()调用连接到了mysql服务器。然后将连接结果传递给$_SESSION,以使其在整个网站上可用-就像我在所有其他项目中通常所做的那样,但由于某些原因,我一直收到错误:

代码语言:javascript
复制
"mysqli_query(): Couldn't fetch mysqli"

下面是生成错误的代码:

代码语言:javascript
复制
if(!isset($_GET['sortBy']))
    {
        $listSQL = "SELECT * FROM '".$_SESSION['WorkTable']."'";
    }
    else
    {
        $listSQL = "SELECT * FROM '".$_SESSION['WorkTable']."' where ".$_GET['sortBy']."='".$_GET['sortBy']."'";
    }

    //get Contacts From DB
    if(!empty(mysqli_query(@$_SESSION['IMWEDBcxn'],$listSQL)))

这是connection类的代码...

代码语言:javascript
复制
if(!empty($cxn))
{
    $_SESSION['WorkTable'] = $dbTable;

    $_SESSION['IMWEDBcxn'] = $cxn;
}

我有什么遗漏的吗?

EN

回答 1

Stack Overflow用户

发布于 2014-11-25 20:47:34

正如Ivan Solntsev所说,不要在用户的会话中存储连接处理程序,原因有两个:

1-处理程序无法序列化。

2-您存储在用户会话中的任何内容(使用$_SESSION)都将仅在该用户的作用域下可用。我建议你阅读更多关于会话和PHP的知识,$_SESSION不是一种通过会话来存储数据的方法。

所以做一些类似这样的事情:

代码语言:javascript
复制
$connect = mysqli_connect("...");
$_SESSION["dbconnection"] = $connect;

mysqli_query($_SESSION["dbconnection"], $query);

是错误的!

如果您想要一个持久连接,为了避免在每次DB查询时重新连接,请阅读MySQLi和持久连接:http://php.net/manual/en/mysqli.persistconns.php。如果您运行的PHP版本低于5.3,我建议您使用PDO (不管您使用的是哪个PHP版本,我都会推荐它)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27126994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档