コード例 #1
0
function poll_async($offset, $link, $links, $errors, $reject, $exp_ready, $use_oo_syntax)
{
    if ($exp_ready !== ($tmp = mysqli_poll($links, $errors, $reject, 0, 1000))) {
        printf("[%03d + 1] There should be %d links ready to read from, %d ready\n", $offset, $exp_ready, $tmp);
    }
    foreach ($links as $mysqli) {
        if ($use_oo_syntax) {
            $res = $mysqli->reap_async_query();
        } else {
            $res = mysqli_reap_async_query($mysqli);
        }
        if (is_object($res)) {
            printf("[%03d + 2] %s\n", $offset, var_export($res->fetch_assoc(), true));
        } else {
            if (mysqli_errno($mysqli) > 0) {
                printf("[%03d + 3] Error indicated through links array: %d/%s", $offset, mysqli_errno($mysqli), mysqli_error($mysqli));
            } else {
                printf("[%03d + 4] Cannot fetch and no error set - non resultset query (no SELECT)!\n", $offset);
            }
        }
    }
    foreach ($errors as $mysqli) {
        printf("[%03d + 5] Error on %d: %d/%s\n", $offset, mysqli_thread_id($mysqli), mysqli_errno($mysqli), mysqli_error($mysqli));
    }
    foreach ($reject as $mysqli) {
        printf("[%03d + 6] Rejecting thread %d: %d/%s\n", $offset, mysqli_thread_id($mysqli), mysqli_errno($mysqli), mysqli_error($mysqli));
    }
}
コード例 #2
0
function dump_properties($mysqli)
{
    printf("\nClass variables:\n");
    $variables = array_keys(get_class_vars(get_class($mysqli)));
    sort($variables);
    foreach ($variables as $k => $var) {
        printf("%s = '%s'\n", $var, var_export(@$mysqli->{$var}, true));
    }
    printf("\nObject variables:\n");
    $variables = array_keys(get_object_vars($mysqli));
    foreach ($variables as $k => $var) {
        printf("%s = '%s'\n", $var, var_export(@$mysqli->{$var}, true));
    }
    printf("\nMagic, magic properties:\n");
    assert(@mysqli_affected_rows($mysqli) === @$mysqli->affected_rows);
    printf("mysqli->affected_rows = '%s'/%s ('%s'/%s)\n", @$mysqli->affected_rows, gettype(@$mysqli->affected_rows), @mysqli_affected_rows($mysqli), gettype(@mysqli_affected_rows($mysqli)));
    assert(@mysqli_get_client_info() === @$mysqli->client_info);
    printf("mysqli->client_info = '%s'/%s ('%s'/%s)\n", @$mysqli->client_info, gettype(@$mysqli->client_info), @mysqli_get_client_info(), gettype(@mysqli_get_client_info()));
    assert(@mysqli_get_client_version() === @$mysqli->client_version);
    printf("mysqli->client_version =  '%s'/%s ('%s'/%s)\n", @$mysqli->client_version, gettype(@$mysqli->client_version), @mysqli_get_client_version(), gettype(@mysqli_get_client_version()));
    assert(@mysqli_errno($mysqli) === @$mysqli->errno);
    printf("mysqli->errno = '%s'/%s ('%s'/%s)\n", @$mysqli->errno, gettype(@$mysqli->errno), @mysqli_errno($mysqli), gettype(@mysqli_errno($mysqli)));
    assert(@mysqli_error($mysqli) === @$mysqli->error);
    printf("mysqli->error = '%s'/%s ('%s'/%s)\n", @$mysqli->error, gettype(@$mysqli->error), @mysqli_error($mysqli), gettype(@mysqli_error($mysqli)));
    assert(@mysqli_field_count($mysqli) === @$mysqli->field_count);
    printf("mysqli->field_count = '%s'/%s ('%s'/%s)\n", @$mysqli->field_count, gettype(@$mysqli->field_count), @mysqli_field_count($mysqli), gettype(@mysqli_field_count($mysqli)));
    assert(@mysqli_insert_id($mysqli) === @$mysqli->insert_id);
    printf("mysqli->insert_id = '%s'/%s ('%s'/%s)\n", @$mysqli->insert_id, gettype(@$mysqli->insert_id), @mysqli_insert_id($mysqli), gettype(@mysqli_insert_id($mysqli)));
    assert(@mysqli_sqlstate($mysqli) === @$mysqli->sqlstate);
    printf("mysqli->sqlstate = '%s'/%s ('%s'/%s)\n", @$mysqli->sqlstate, gettype(@$mysqli->sqlstate), @mysqli_sqlstate($mysqli), gettype(@mysqli_sqlstate($mysqli)));
    assert(@mysqli_get_host_info($mysqli) === @$mysqli->host_info);
    printf("mysqli->host_info = '%s'/%s ('%s'/%s)\n", @$mysqli->host_info, gettype(@$mysqli->host_info), @mysqli_get_host_info($mysqli), gettype(@mysqli_get_host_info($mysqli)));
    /* note that the data types are different */
    assert(@mysqli_info($mysqli) == @$mysqli->info);
    printf("mysqli->info = '%s'/%s ('%s'/%s)\n", @$mysqli->info, gettype(@$mysqli->info), @mysqli_info($mysqli), gettype(@mysqli_info($mysqli)));
    assert(@mysqli_thread_id($mysqli) > @$mysqli->thread_id);
    assert(gettype(@$mysqli->thread_id) == gettype(@mysqli_thread_id($mysqli)));
    printf("mysqli->thread_id = '%s'/%s ('%s'/%s)\n", @$mysqli->thread_id, gettype(@$mysqli->thread_id), @mysqli_thread_id($mysqli), gettype(@mysqli_thread_id($mysqli)));
    assert(@mysqli_get_proto_info($mysqli) === @$mysqli->protocol_version);
    printf("mysqli->protocol_version = '%s'/%s ('%s'/%s)\n", @$mysqli->protocol_version, gettype(@$mysqli->protocol_version), @mysqli_get_proto_info($mysqli), gettype(@mysqli_get_proto_info($mysqli)));
    assert(@mysqli_get_server_info($mysqli) === @$mysqli->server_info);
    printf("mysqli->server_info = '%s'/%s ('%s'/%s)\n", @$mysqli->server_info, gettype(@$mysqli->server_info), @mysqli_get_server_info($mysqli), gettype(@mysqli_get_server_info($mysqli)));
    assert(@mysqli_get_server_version($mysqli) === @$mysqli->server_version);
    printf("mysqli->server_version = '%s'/%s ('%s'/%s)\n", @$mysqli->server_version, gettype(@$mysqli->server_version), @mysqli_get_server_version($mysqli), gettype(@mysqli_get_server_version($mysqli)));
    assert(@mysqli_warning_count($mysqli) === @$mysqli->warning_count);
    printf("mysqli->warning_count = '%s'/%s ('%s'/%s)\n", @$mysqli->warning_count, gettype(@$mysqli->warning_count), @mysqli_warning_count($mysqli), gettype(@mysqli_warning_count($mysqli)));
    printf("\nAccess to undefined properties:\n");
    printf("mysqli->unknown = '%s'\n", @$mysqli->unknown);
    @($mysqli->unknown = 13);
    printf("setting mysqli->unknown, @mysqli_unknown = '%s'\n", @$mysqli->unknown);
    $unknown = 'friday';
    @($mysqli->unknown = $unknown);
    printf("setting mysqli->unknown, @mysqli_unknown = '%s'\n", @$mysqli->unknown);
    printf("\nAccess hidden properties for MYSLQI_STATUS_INITIALIZED (TODO documentation):\n");
    assert(@mysqli_connect_error() === @$mysqli->connect_error);
    printf("mysqli->connect_error = '%s'/%s ('%s'/%s)\n", @$mysqli->connect_error, gettype(@$mysqli->connect_error), @mysqli_connect_error(), gettype(@mysqli_connect_error()));
    assert(@mysqli_connect_errno() === @$mysqli->connect_errno);
    printf("mysqli->connect_errno = '%s'/%s ('%s'/%s)\n", @$mysqli->connect_errno, gettype(@$mysqli->connect_errno), @mysqli_connect_errno(), gettype(@mysqli_connect_errno()));
}
コード例 #3
0
 function getDBCon($force = 0)
 {
     if ($force || !isset($this->a['db_con'])) {
         if (!$this->createDBCon()) {
             return false;
         }
     }
     if (!$force && !@mysqli_thread_id($this->a['db_con'])) {
         return $this->getDBCon(1);
     }
     return $this->a['db_con'];
 }
コード例 #4
0
ファイル: SimpleSQL.php プロジェクト: jejem/simple-sql
 public function close()
 {
     foreach (array(self::LINK_TYPE_SLAVE, self::LINK_TYPE_MASTER) as $type) {
         if (array_key_exists($type, $this->links) && $this->links[$type] instanceof \mysqli) {
             $tid = mysqli_thread_id($this->links[$type]);
             if ($tid !== false) {
                 mysqli_kill($this->links[$type], $tid);
             }
             mysqli_close($this->links[$type]);
             unset($this->links[$type]);
         }
     }
     $this->links = array();
 }
コード例 #5
0
ファイル: db__.php プロジェクト: gottsohn/muzikkitchen
 public function insertInto($table, $values)
 {
     if (is_array($values)) {
         $str = "INSERT INTO `{$table}` VALUES (NULL,";
         foreach ($values as $value) {
             $str .= "'" . $value . "',";
         }
         $str = substr($str, 0, strlen($str) - 1);
         $str .= ")";
         $nc = $this->c();
         $q = mysqli_query($nc, $str);
         mysqli_kill($nc, mysqli_thread_id($nc));
         mysqli_close($nc);
         if ($q) {
             return true;
         } else {
             return false;
         }
     } else {
         return false;
     }
 }
コード例 #6
0
ファイル: db.class.php プロジェクト: Eidolex/Project
 public function Clsoe()
 {
     $thread_id = mysqli_thread_id($this->con);
     mysqli_kill($this->con, $thread_id);
 }
コード例 #7
0
        break;
    }
    $links = $errors = $reject = array($mysqli1, $mysqli2);
    if (0 == ($ready = mysqli_poll($links, $errors, $reject, 0, 50000))) {
        continue;
    }
    // WARNING: Due to the reference issue none of these should ever fire!
    foreach ($reject as $link) {
        printf("Connection %d was rejected...\n", mysqli_thread_id($link));
        if (mysqli_thread_id($link) != $thread_id) {
            printf("[006] Connector %d should have been rejected. But also %d has been rejected.", $thread_id, mysqli_thread_id($link));
        }
        $processed++;
    }
    foreach ($errors as $link) {
        printf("Connection %d has an error...\n", mysqli_thread_id($link));
        $processed++;
    }
    foreach ($links as $link) {
        if ($res = mysqli_reap_async_query($link)) {
            mysqli_free_result($res);
            $processed++;
        }
    }
} while ($processed < 2);
mysqli_close($mysqli1);
mysqli_close($mysqli2);
$mysqli1 = get_connection();
$mysqli2 = get_connection();
var_dump(mysqli_query($mysqli1, "SELECT SLEEP(0.10)", MYSQLI_ASYNC | MYSQLI_USE_RESULT));
var_dump(mysqli_query($mysqli2, "SELECT SLEEP(0.20)", MYSQLI_ASYNC | MYSQLI_USE_RESULT));
コード例 #8
0
<div id="boxlinks2">

<?php 
include 'inc/boxlinks2.php';
?>
</div>
<div id="content2">
 <h2><?php 
echo nl2br($daten['titel_' . $lang]);
?>
</h2><br />
<?php 
echo nl2br($daten[$lang]);
?>
 
    
  
</div><div id="nebennavigation"><div id="nebennavigationinnen"><?php 
include 'inc/nebennavigation_' . $lang . '.php';
?>
</div>   </div></div>
</div>


</body>
</html>
<?php 
$thread_id = mysqli_thread_id($link);
mysqli_kill($link, $thread_id);
mysqli_close($link);
コード例 #9
0
 protected function getThreadId()
 {
     return mysqli_thread_id($this->db_Conn);
 }
コード例 #10
0
 /**
  * Retrieve the current thread id
  *
  * @return	@e integer
  */
 public function getThreadId()
 {
     return mysqli_thread_id($this->connection_id);
 }
コード例 #11
0
ファイル: mysql2i.php プロジェクト: siteman/mysql2i
 function mysql_thread_id($link = NULL)
 {
     $link = mysql_resolve_link($link);
     return mysqli_thread_id($link);
 }
コード例 #12
0
ファイル: mysql-wrapper.php プロジェクト: Jan-E/mysql-wrapper
 function mysql_thread_id($link_identifier = null)
 {
     return mysqli_thread_id(mysql_ensure_link($link_identifier));
 }
コード例 #13
0
ファイル: Mysqli.php プロジェクト: seansitter/picnicphp
 public function getLinkId()
 {
     return mysqli_thread_id($this->getLink());
 }
コード例 #14
0
<?php

require_once "connect.inc";
require_once "table.inc";
$host = 'p:' . $host;
if (!($plink = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))) {
    printf("[001] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", $host, $user, $db, $port, $socket);
}
// get the thread ids of the two connections...
$thread_id = mysqli_thread_id($link);
$pthread_id = mysqli_thread_id($plink);
if (!($res = mysqli_query($link, 'SHOW FULL PROCESSLIST'))) {
    printf("[002] Cannot get processlist, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
$running_threads = array();
while ($row = mysqli_fetch_assoc($res)) {
    $running_threads[$row['Id']] = $row;
}
mysqli_free_result($res);
if (count($running_threads) < 2) {
    printf("[003] Processlist is too short, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
if (!isset($running_threads[$thread_id])) {
    printf("[004] Cannot find thread id of the regular link, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
if (!isset($running_threads[$pthread_id])) {
    printf("[005] Cannot find thread id of the persistent link, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
// Kill the persistent connection - don't use mysqli_kill, mysqlnd will catch that...
if (!mysqli_query($link, sprintf('KILL %d', $pthread_id))) {
    printf("[006] Cannot kill persistent connection, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
コード例 #15
0
ファイル: mysqli_kill.php プロジェクト: badlamer/hhvm
<?php

require_once "connect.inc";
$tmp = NULL;
$link = NULL;
$test_table_name = 'test_mysqli_kill_table_1';
require 'table.inc';
// Zend will cast the NULL to 0
if (!is_bool($tmp = mysqli_kill($link, null))) {
    printf("[003] Expecting boolean/any, got %s/%s\n", gettype($tmp), $tmp);
}
if (!($thread_id = mysqli_thread_id($link))) {
    printf("[004] Cannot determine thread id, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
$tmp = mysqli_kill($link, $thread_id);
if (!is_bool($tmp)) {
    printf("[005] Expecting boolean/any, got %s/%s\n", gettype($tmp), $tmp);
}
if ($res = mysqli_query($link, "SELECT id FROM test_mysqli_kill_table_1 LIMIT 1")) {
    pintf("[006] Expecting boolean/false, got %s/%s\n", gettype($res), $res);
}
var_dump($error = mysqli_error($link));
if (!is_string($error) || '' === $error) {
    printf("[007] Expecting string/any non empty, got %s/%s\n", gettype($error), $error);
}
var_dump($res);
var_dump($link);
if ($IS_MYSQLND) {
    if ($link->info != 'Records: 6  Duplicates: 0  Warnings: 0') {
        printf("[008] mysqlnd used to be more verbose and used to support SELECT\n");
    }
コード例 #16
0
}
if (!mysqli_stmt_execute($stmt)) {
    printf("[027] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
}
mysqli_stmt_close($stmt);
if (!mysqli_real_query($link, 'SELECT label, id FROM test')) {
    printf("[028] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
if (!($res = mysqli_use_result($link))) {
    printf("[029] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
mysqli_free_result($res);
if (!mysqli_real_query($link, 'SELECT label, id FROM test')) {
    printf("[030]  [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
if (!($res = mysqli_store_result($link))) {
    printf("[031]  [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
mysqli_free_result($res);
if (!($stmt = mysqli_prepare($link, 'SELECT id * 3 FROM test'))) {
    printf("[032] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
} else {
    mysqli_stmt_close($stmt);
}
if (!mysqli_query($link, "INSERT INTO test(id, label) VALUES (100, 'z')", MYSQLI_USE_RESULT) || !mysqli_query($link, 'DELETE FROM test WHERE id > 50', MYSQLI_USE_RESULT)) {
    printf("[033] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
$tmp = mysqli_thread_safe($link);
$tmp = mysqli_thread_id($link);
mysqli_close($link);
print "done!";
コード例 #17
0
 function mysql_thread_id($c = null)
 {
     if (($c = mysql_global_resource($c, 1 - func_num_args())) == null) {
         return;
     }
     return mysqli_thread_id($c);
 }
コード例 #18
0
ファイル: mysqli_thread_id.php プロジェクト: alphaxxl/hhvm
<?php

require_once "connect.inc";
$tmp = NULL;
$link = NULL;
$test_table_name = 'test_mysqli_thread_id_table_1';
require 'table.inc';
if (!is_int($tmp = mysqli_thread_id($link)) || 0 === $tmp) {
    printf("[003] Expecting int/any but zero, got %s/%s. [%d] %s\n", gettype($tmp), $tmp, mysqli_errno($link), mysqli_error($link));
}
// should work if the thread id is correct
mysqli_kill($link, mysqli_thread_id($link));
mysqli_close($link);
if (NULL !== ($tmp = mysqli_thread_id($link))) {
    printf("[005] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
}
print "done!";
$test_table_name = 'test_mysqli_thread_id_table_1';
require_once "clean_table.inc";
コード例 #19
0
ファイル: num.php プロジェクト: gottsohn/muzikkitchen
include "../scripts/db.php";
if (!isset($_SESSION["uid"], $_SESSION["user"])) {
    exit("<div class='m_s_g'>Invalid Authentication<div>");
}
$uid = intval($_SESSION["uid"]);
if ($uid != 0 && isset($uid)) {
    $con = new db();
    $conc = $con->c();
    $num = 0;
    $subjres = mysqli_query($conc, "SELECT `id` FROM `msg_subj` WHERE `u1` = {$uid} OR `u2` = {$uid}");
    if ($subjres) {
        while ($sb = mysqli_fetch_array($subjres)) {
            $msg = mysqli_query($conc, "SELECT `new`,`uid` FROM `msg` WHERE `new` = 1 AND `cid` = " . $sb[0] . " ORDER BY `id` DESC");
            if ($msg) {
                $ltv = mysqli_fetch_array($msg);
                $numr = mysqli_num_rows($msg);
                if ($numr > 0 && $ltv[1] != $uid) {
                    $num = $num + $numr;
                }
            }
        }
    }
    $num = $num > 0 ? $num : "";
    $subjres = NULL;
    $sb = NULL;
    echo $num;
    $_SESSION["msg_num"] = $num;
}
mysqli_kill($conc, mysqli_thread_id($con->c()));
mysqli_close($con->c());
exit;
コード例 #20
0
function mysql_compat_thread_id($link = NULL)
{
    if (!isset($link)) {
        $link = $GLOBALS['mysql_compat_last_link'];
    }
    return mysqli_thread_id($link);
}
コード例 #21
0
$thread_id = mysqli_thread_id($link2);
printf("Connection 2 (no reuse) - Thread ID -> '%s'\n", $thread_id);
mysqli_free_result($res);
if (!mysqli_query($link2, 'SET @pcondisabled = "Connection 2"')) {
    printf("[006] Cannot set user variable to check if we got the same persistent connection, [%d] %s\n", mysqli_errno($link2), mysqli_error($link2));
}
if (!($res = mysqli_query($link2, 'SELECT @pcondisabled AS _test'))) {
    printf("[007] [%d] %s\n", mysqli_errno($link2), mysqli_error($link2));
}
$row = mysqli_fetch_assoc($res);
printf("Connection 2 - SELECT @pcondisabled -> '%s'\n", $row['_test']);
mysqli_free_result($res);
mysqli_close($link2);
/* reuse of existing persistent connection expected! */
if (!($link2 = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))) {
    printf("[008] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s, [%d] %s\n", $host, $user, $db, $port, $socket, mysqli_connect_errno(), mysqli_connect_error());
}
if (!($res = mysqli_query($link2, 'SELECT @pcondisabled AS _test'))) {
    printf("[009] [%d] %s\n", mysqli_errno($link2), mysqli_error($link2));
}
$row = mysqli_fetch_assoc($res);
printf("Connection 2 (reuse) - SELECT @pcondisabled -> '%s'\n", $row['_test']);
$thread_id_reuse = mysqli_thread_id($link2);
printf("Connection 2 (reuse) - Thread ID -> '%s'\n", $thread_id_reuse);
mysqli_free_result($res);
if ($thread_id != $thread_id_reuse) {
    printf("[010] Seems as if we have got a new connection, connections should have been cached and reused!\n");
}
mysqli_close($link1);
mysqli_close($link2);
print "done!";
コード例 #22
0
assert(mysqli_field_count($link) === $mysqli->field_count);
printf("mysqli->field_count = '%s'/%s ('%s'/%s)\n", $mysqli->field_count, gettype($mysqli->field_count), mysqli_field_count($link), gettype(mysqli_field_count($link)));
assert(mysqli_insert_id($link) === $mysqli->insert_id);
printf("mysqli->insert_id = '%s'/%s ('%s'/%s)\n", $mysqli->insert_id, gettype($mysqli->insert_id), mysqli_insert_id($link), gettype(mysqli_insert_id($link)));
assert(mysqli_sqlstate($link) === $mysqli->sqlstate);
printf("mysqli->sqlstate = '%s'/%s ('%s'/%s)\n", $mysqli->sqlstate, gettype($mysqli->sqlstate), mysqli_sqlstate($link), gettype(mysqli_sqlstate($link)));
assert(soundex(mysqli_stat($link)) == soundex($mysqli->stat));
printf("mysqli->stat = '%s'/%s ('%s'/%s)\n", $mysqli->stat, gettype($mysqli->stat), mysqli_stat($link), gettype(mysqli_stat($link)));
assert(mysqli_get_host_info($link) === $mysqli->host_info);
printf("mysqli->host_info = '%s'/%s ('%s'/%s)\n", $mysqli->host_info, gettype($mysqli->host_info), mysqli_get_host_info($link), gettype(mysqli_get_host_info($link)));
/* note that the data types are different */
assert(mysqli_info($link) == $mysqli->info);
printf("mysqli->info = '%s'/%s ('%s'/%s)\n", $mysqli->info, gettype($mysqli->info), mysqli_info($link), gettype(mysqli_info($link)));
assert(mysqli_thread_id($link) > $mysqli->thread_id);
assert(gettype($mysqli->thread_id) == gettype(mysqli_thread_id($link)));
printf("mysqli->thread_id = '%s'/%s ('%s'/%s)\n", $mysqli->thread_id, gettype($mysqli->thread_id), mysqli_thread_id($link), gettype(mysqli_thread_id($link)));
assert(mysqli_get_proto_info($link) === $mysqli->protocol_version);
printf("mysqli->protocol_version = '%s'/%s ('%s'/%s)\n", $mysqli->protocol_version, gettype($mysqli->protocol_version), mysqli_get_proto_info($link), gettype(mysqli_get_proto_info($link)));
assert(mysqli_get_server_info($link) === $mysqli->server_info);
printf("mysqli->server_info = '%s'/%s ('%s'/%s)\n", $mysqli->server_info, gettype($mysqli->server_info), mysqli_get_server_info($link), gettype(mysqli_get_server_info($link)));
assert(mysqli_get_server_version($link) === $mysqli->server_version);
printf("mysqli->server_version = '%s'/%s ('%s'/%s)\n", $mysqli->server_version, gettype($mysqli->server_version), mysqli_get_server_version($link), gettype(mysqli_get_server_version($link)));
assert(mysqli_warning_count($link) === $mysqli->warning_count);
printf("mysqli->warning_count = '%s'/%s ('%s'/%s)\n", $mysqli->warning_count, gettype($mysqli->warning_count), mysqli_warning_count($link), gettype(mysqli_warning_count($link)));
printf("\nAccess to undefined properties:\n");
printf("mysqli->unknown = '%s'\n", @$mysqli->unknown);
@($mysqli->unknown = 13);
printf("setting mysqli->unknown, mysqli_unknown = '%s'\n", @$mysqli->unknown);
$unknown = 'friday';
@($mysqli->unknown = $unknown);
printf("setting mysqli->unknown, mysqli_unknown = '%s'\n", @$mysqli->unknown);
コード例 #23
0
ファイル: db.php プロジェクト: gottsohn/muzikkitchen
 public function close_db_con($nc)
 {
     mysqli_kill($nc, mysqli_thread_id($nc));
     return mysqli_close($nc);
 }
コード例 #24
0
ファイル: mysql.php プロジェクト: gsomoza/php7-mysql-shim
 function mysql_thread_id(\mysqli $link = null)
 {
     return mysqli_thread_id(\Dshafik\MySQL::getConnection($link));
 }
コード例 #25
0
ファイル: mysqli_no_reconnect.php プロジェクト: alphaxxl/hhvm
    $running_threads[$row['Id']] = $row;
}
mysqli_free_result($res);
if (isset($running_threads[$thread_id_timeout])) {
    printf("[009] Server should have killed the timeout connection, [%d] %s\n", mysqli_errno($link2), mysqli_error($link));
}
if (false !== @mysqli_ping($link)) {
    printf("[010] Reconnect should not have happened");
}
if ($res = @mysqli_query($link, "SELECT DATABASE() as _dbname")) {
    printf("[011] Executing a query should not be possible, connection should be closed, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
if (!($link = @my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))) {
    printf("[012] Cannot create database connection, [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
}
$thread_id_timeout = mysqli_thread_id($link);
/*
  Don't test for the mysqli_query() return value here.
  It is undefined if the server replies to the query and how.
  For example, it seems that on Linux when connecting to MySQL 5.1,
  the server always manages to send a full a reply. Whereas MySQl 5.5
  may not. The behaviour is undefined. Any return value is fine.
*/
if ($IS_MYSQLND) {
    /*
    mysqlnd is a bit more verbose than libmysql. mysqlnd should print:
    Warning: mysqli_query(): MySQL server has gone away in %s on line %d
    
    Warning: mysqli_query(): Error reading result set's header in %d on line %d
    */
    @mysqli_query($link, sprintf('KILL %d', $thread_id_timeout));
コード例 #26
0
    printf("[014] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", $phost, $user, $db, $port, $socket);
}
if (NULL !== ($tmp = $link->connect($host, $user, $passwd, $db, $port, $socket))) {
    printf("[015] Expecting NULL got %s/%s\n", gettype($tmp), $tmp);
}
printf("Flipping phost/host order\n");
if (!($link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))) {
    printf("[016] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", $host, $user, $db, $port, $socket);
}
if (!($thread_id = mysqli_thread_id($link))) {
    printf("[017] Cannot determine thread id, test will fail, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
if (true !== ($tmp = my_mysqli_real_connect($link, $phost, $user, $passwd, $db, $port, $socket))) {
    printf("[018] Expecting boolean/true got %s/%s\n", gettype($tmp), $tmp);
}
if (!is_int($new_thread_id = mysqli_thread_id($link)) || $new_thread_id < 0) {
    printf("[019] Expecting int/any got %s/%s\n", gettype($tmp), $tmp);
}
if ($thread_id == $new_thread_id) {
    printf("[020] Expecting new connection and new thread id. Old thread id %d, new thread id %d\n", $thread_id, $new_thread_id);
}
if (!($res = mysqli_query($link, "SELECT 'ok' AS it_works")) || !($row = mysqli_fetch_assoc($res))) {
    printf("[021] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
var_dump($row);
mysqli_free_result($res);
mysqli_close($link);
if (!($link = new my_mysqli($host, $user, $passwd, $db, $port, $socket))) {
    printf("[022] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", $host, $user, $db, $port, $socket);
}
if (!($thread_id = $link->thread_id)) {
コード例 #27
0
}
if (!mysqli_stmt_prepare($stmt, "SELECT id, label FROM test ORDER BY id LIMIT 2")) {
    printf("[010] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
}
if (!mysqli_stmt_execute($stmt)) {
    printf("[011] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
}
$id = NULL;
$label = NULL;
if (true !== ($tmp = mysqli_stmt_bind_result($stmt, $id, $label))) {
    printf("[012] Expecting boolean/true, got %s/%s\n", gettype($tmp), $tmp);
}
if (true !== ($tmp = mysqli_stmt_fetch($stmt))) {
    printf("[013] Expecting boolean/true, got %s/%s, [%d] %s\n", gettype($tmp), $tmp, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
}
if (!mysqli_kill($link, mysqli_thread_id($link))) {
    printf("[014] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
}
if (true !== ($tmp = mysqli_stmt_fetch($stmt))) {
    printf("[015] Expecting boolean/true, got %s/%s\n", gettype($tmp), $tmp);
}
mysqli_stmt_close($stmt);
if (NULL !== ($tmp = mysqli_stmt_fetch($stmt))) {
    printf("[016] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
}
mysqli_close($link);
/* Check that the function alias exists. It's a deprecated function,
	but we have not announce the removal so far, therefore we need to check for it */
if (!is_null($tmp = @mysqli_stmt_fetch())) {
    printf("[017] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
}
コード例 #28
0
ファイル: db.php プロジェクト: jasondavis/PHP-Classes
 /**
  * Loggs the query and the message when an error occured
  *
  * @param string $query The full query
  */
 private static final function _log($query)
 {
     $thd = mysqli_thread_id(DB::$cur);
     if (!mysqli_ping(DB::$cur)) {
         $msg = 'SQL Error:  Connection lost!';
     } else {
         if ($thd !== mysqli_thread_id(DB::$cur)) {
             $msg = 'SQL Warning:  Connection restarted...';
         } else {
             $msg = 'SQL Error:  ' . mysqli_error(DB::$cur) . ' (' . $query . ') @(' . mysqli_get_host_info(DB::$cur) . ')';
         }
     }
     if (isset($_SERVER['REQUEST_URI'])) {
         $msg .= ' in ' . $_SERVER['REQUEST_URI'];
     }
     if (class_exists('FB')) {
         FB::error($msg);
     } else {
         error_log($msg);
     }
 }