- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序使用 ADODB 同时连接到 2 个 MySQL 数据库。应用程序正在下载大文件;花费大量时间,因此发生“mysql has gone away”错误。
我知道 MySQL 允许使用可以使用 mysql_options() 启用的自动重新连接,但我不知道如何将此功能应用于 ADODB 适配器。
$DB = NewADOConnection('mysql');
$DB->Connect(DB_HOST, DB_LOGIN, DB_PASSWORD, DB_DBNAME);
感谢您的宝贵时间!
PS:可能我应该问如何从 $DB 获取数据库处理程序变量?如果我可以从 ADODO 获取数据库连接处理程序作为 $handler,我可以使用 mysql_options($handler, MYSQL_OPT_RECONNECT, 1);但是,如果我应该在连接之前调用 mysql_options() ,我怎么能得到 $handler (根据 MySQL 引用 http://dev.mysql.com/doc/refman/5.0/en/mysql-options.html )
最佳答案
要设置 mysql 选项,您可以使用 dsn。这是我一直使用的连接模板:
$options = '';
if ($driver == 'mysql' OR $driver == 'mysqli')
{
if ($params['pconnect'] === TRUE)
{
$options .= '?persist';
}
$flags = MYSQL_CLIENT_COMPRESS;
$options .= (empty($options)?'?':'&')."clientflags=$flags";
}
$dsn = "{$driver}://{$username}:{$password}@{$hostname}/{$database}{$options}";
if ($driver == 'sqlite')
{
if ($params['pconnect'] === TRUE)
{
$options = '?persist';
}
$database = urlencode($database);
$dsn = "{$driver}://{$database}{$options}";
}
$adodb =& ADONewConnection($dsn);
if ($adodb)
{
//set fetch mode
$adodb->SetFetchMode(ADODB_FETCH_BOTH);
//character set
if ($driver == 'mysql' OR $driver == 'mysqli')
{
if (isset($params['char_set']) AND $params['char_set']
AND isset($params['dbcollat']) AND $params['dbcollat'])
{
$charset = $adodb->qstr($params['char_set']);
$collation = $adodb->qstr($params['dbcollat']);
$adodb->Execute("SET NAMES $charset COLLATE $collation");
}
}
if ($debug)
{
@ob_start();
$adodb->debug = TRUE;
}
}
如果您只将它用于 MySQL,则可以省略 sqlite
驱动程序条件 block 。显然,PHP MySQL 客户端仅支持有限的选项,here is the list .你可以试试 MySQLi,它 have more options .
你试过持久连接了吗?
关于php ADODB 在连接到 MySQL 之前调用 mysql_options(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2153696/
我已经在以 Ubuntu 16.04 作为操作系统的本地计算机上安装了 mysql-server 和 mysql-workbench。我可以通过 CLI 连接到 mysql-server,但不能通过
无法在 gcc 版本 4.1.2 20080704 (Red Hat 4.1.2-48) 上编译 C 程序 我应该做什么? 谢谢。 最佳答案 您可以做的一件事就是提供更多信息:) 这里的一个典型示例是
我正在尝试将 MYSQL_PLUGIN_DIR 与 mysql_options() 一起使用。这样做时我的应用程序崩溃了。 这是崩溃的简单代码-- #include "stdafx.h" #inclu
如何使用 mySQL C++ 连接器设置超时?我试过这个..但它是编译错误。 error: ‘class sql::Driver’ has no member named ‘mysql_options
我的应用程序使用 ADODB 同时连接到 2 个 MySQL 数据库。应用程序正在下载大文件;花费大量时间,因此发生“mysql has gone away”错误。 我知道 MySQL 允许使用可以使
我是一名优秀的程序员,十分优秀!