我是否可以拥有一个持久的PDO对象,它只接受要从AJAX调用绑定的新变量?

时间:2011-06-10 12:34:05

标签: php mysql ajax pdo

如果我想创建一个ajax搜索(用户填写表单元素,在对表单元素进行任何更新时,搜索结果会立即更新。)

是否可以创建一个持久的(准备好的)PDO连接,只需要通过ajax发送的新变量进行绑定/执行?

还有另一种聪明的方法吗?

编辑:要明确,也许更具体:我正在寻找的是跨连接的持久准备语句。

2 个答案:

答案 0 :(得分:3)

您可以使用以下方式建立持久连接:

http://php.net/manual/en/pdo.connections.php

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
    PDO::ATTR_PERSISTENT => true
));

这样,如果您必须重新连接新请求,PDO将使用池中的连接而不是创建新连接。如果您使用带有prepare()bindParam()的预准备语句,则会在数据库端编译查询,并且比通常的查询运行得更快。

有关缓存的一些链接:

http://www.snipe.net/2009/03/quick-and-dirty-php-caching/

http://docstore.mik.ua/orelly/webprog/pcook/ch10_15.htm

http://mysqlhacker.com/kabir/performance/understanding-mysql-query-cache-for-php-developers-part-i.html

答案 1 :(得分:1)

我想你在这里谈论准备好的陈述,而不是“连接”。

没有办法在调用之间保持相同的准备状态(ajax与否)

另一种方法是将变量存储在临时表中,并在流程结束时发送实际请求......