我们有 32 个客户端数据库,有些很大,有数百万条记录(V.11。目前,托管和构建在 Mac 上)。我已经在 Windows 2012 64x Server 上建立了一个网站,并包含了带有 PHP 版本的 PDO 的最新版本(Xamp 2.5 和 PHP/5.3.8)。插件和 Apache 是 32 倍。
我的网页连接到 4d sql 服务器上的所有 32 个客户端并运行一些 SQL 选择采石场。我遇到的问题几乎无法描述。在某些搜索条件下,它有时有效,有时无效。我的意思是,如果我搜索“jone doe”,它确实会给我结果,如果我更改后者它不会,客户端上的 SQL 连接处理程序保持挂起并且网页超时。
请注意,没有模式。一些搜索挂在一个客户端上。一些在 2 或 3。不同的搜索是相同的,但不同的客户端。只有一个对特定数量的 13 个字符的搜索通过了所有客户端,并且运行良好。我还要说我的目标是特定的表和列,所以我确定我的 SQL 查询没有问题,我的搜索框很少,它们都是单一搜索,没有 OR 或 AND SQL,我也选择了大约 4- 6 列显示该选择查询的结果。
此外,这一切都在工作中的专用网络上。所以连接也不是问题。我要补充一点,每个连接的最大结果可以是 0 - 50。这是精简的代码示例:
定义了连接,这是代码的其余部分:
function trazi($dbaza) {
global $db; global $db2; global $db3; global $db4; global $db5; global $db6; global $db7;
global $db8; global $db9; global $db10; global $db11; global $db12; global $db13; global
$db14; global $db15; global $db16; global $db17; global $db18; global $db19; global $db20;
global $db21; global $db22; global $db23; global $db24; global $db25; global $db26; global $db27;
global $db28; global $db29; global $db30; global $db31; global $db32;
global $inime; global $inoib; global $inbb; global $inbbroj; global $insb;
$odabrani = $dbaza->prepare('SELECT STANJE, SUD_BROJ_O, SUD_BROJ_P, SUD_BROJ_JBR , NAZIV_LONG, OIB FROM PREDMETI WHERE SUD_BROJ_O = ? ');
$params = array($insb);
$odabrani->execute($params);
$rezultat = $odabrani->fetchAll(PDO::FETCH_ASSOC);
unset($dbaza);
unset($odabrani);
if ($rezultat) {
<th>Ime i prezime</th>
<th>OIB</th>
<th>Bilježnički broj</th>
<th>Sudski parnički broj</th>
<th>Sudski ovršni broj</th>
<th>Stanje predmeta</th>';
foreach($rezultat as $row) {
echo "<tr>
<td>".$row['NAZIV_LONG']. "</td>".
"<td>".$row['OIB']."</td>".
"<td>".$row['SUD_BROJ_JBR']."</td>".
"<td>".$row['SUD_BROJ_P']."</td>".
"<td>".$row['SUD_BROJ_O']."</td>".
"<td>".$row['STANJE']."</td>".
"</tr>";
}
echo "</table>";
} else {
echo "Vaša pretraga nije pronašla niti jedan rezultat.";
}
}
unset($rezultat);
//ATLANTIC
echo '<br><br><div style="color:#922E19">ATLANTIC</div>';
trazi($db);
ob_implicit_flush(true);
$buffer = str_repeat(" ", 4096);
echo $buffer;
ob_flush(); usleep(300000);
//CEDEVITA
echo '<br><br><div style="color:#922E19">CEDEVITA</div>';
trazi($db2);
ob_implicit_flush(true);
$buffer = str_repeat(" ", 4096);
echo $buffer;
ob_flush(); usleep(300000);
ETC...
我真的希望这个 PDO 限制是问题,因为在某些查询中它选择了太多数据并中断。
问题:我对 4d PDO 源文件进行了更改并更改了限制。但我无法编译它,也不知道如何编译。我没有 PC,我的服务器对这个主题没有用,而且我在 Mac 上。有人可以帮我用这些更改编译一个 DLL。我将附上一个包含更改的 zip 文件。
http://forums.4d.fr/4DBB_Main/x_User/18851165/files/18851204.zip
编辑; 或者有人可以用错误修复编译我这个版本吗? https://github.com/famsf/pecl-pdo-4d
我正在使用 PHP/5.3.8 32 位。