build/extracted-examples/api/hack/class.AsyncMysqlException.method.failed/basic-usage.hack (44 lines of code) (raw):

// WARNING: Contains some auto-generated boilerplate code, see: // HHVM\UserDocumentation\MarkdownExt\ExtractedCodeBlocks\FilterBase::addBoilerplate namespace HHVM\UserDocumentation\Api\Hack\ClassAsyncMysqlExceptionMethodFailed\BasicUsage; use \Hack\UserDocumentation\API\Examples\AsyncMysql\ConnectionInfo as CI; async function connect( \AsyncMysqlConnectionPool $pool, ): Awaitable<\AsyncMysqlConnection> { return await $pool->connect( CI::$host, CI::$port, CI::$db, CI::$user, "thisIsNotThePassword", ); } async function simple_query(): Awaitable<?string> { $pool = new \AsyncMysqlConnectionPool(darray[]); $conn = null; $ret = null; try { $conn = await connect($pool); $result = await $conn->query( 'SELECT name FROM test_table WHERE userID = 1', ); $conn->close(); return $result->vectorRows()[0][0]; } catch (\AsyncMysqlConnectException $ex) { // implicitly constructed $ret = "Connection Exception"; \var_dump($ex->failed()); } catch (\AsyncMysqlQueryException $ex) { // implicitly constructed $ret = "Query Exception"; } catch (\AsyncMysqlException $ex) { $ret = null; } finally { if ($conn) { $conn->close(); } } return $ret; } <<__EntryPoint>> async function run(): Awaitable<void> { \init_docs_autoloader(); $r = await simple_query(); \var_dump($r); }