sql >> Databáze >  >> RDS >> Mysql

PHP PDO ignoruje volbu ATTR_TIMEOUT pro MySQL, když server není dostupný

Stačí zadat

ini_set("default_socket_timeout", 2);

před vaším připojovacím řetězcem PDO().

(Testováno na Windows, mělo by být v pořádku i na Linuxu.)

Proč?

Projděte si to manuálem:

Ovladač mysqlnd používá pro základní připojení sokety a pro nastavení časových limitů musíte použít funkce časového limitu soketu (streamu). (Viz:http://php.net/manual/en/mysqlnd.notes. php )

Pokud chcete větší kontrolu, pak byste mohli být schopni ovládat konkrétněji skutečný socket:Netestoval jsem to, protože je to pouze unix. Chcete-li nastavit soket, který mysqlnd používá, můžete určit soket pomocí nastavení ini (viz http://php.net/manual/en/ref.pdo-mysql.connection.php )

Viz http://php. net/manual/en/ref.pdo-mysql.php#ini.pdo-mysql.default-socket o tomto nastavení

Časový limit pak můžete nastavit pomocí http://php .net/manual/en/function.stream-set-timeout.php

Ale pravděpodobně snazší nastavit výchozí a poté resetovat, až budete hotovi...



  1. Jak vytvořit soubor pdf s daty mysql?

  2. Fulltextové vyhledávání MySQL 5.6 InnoDB

  3. Jak používat zástupné znaky předpony jako '*abc' s match-against

  4. get_result() nefunguje, i když je povoleno mysqlnd