⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysqli_many_cols_buf.php

📁 linux下安装不上mysql5与php5的可用此关联
💻 PHP
字号:
<?PHP// measured in KB, that means 1 = 1024 bytes$columns = array(1, 3, 5, 10, 15, 20, 30, 40, 50, 100, 300, 500);$column_types = array(                  array("len" => 1, "name" => "c_tinyint", "type" => "TINYINT", "value" => 1),                  array("len" => 2, "name" => "c_smallint", "type" => "SMALLINT", "value" => 1),                  array("len" => 200, "name" => "c_varchar_199", "type" => "varchar(199)", "value" => "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678"),                  array("len" => 3, "name" => "c_mediumint", "type" => "MEDIUMINT", "value" => 1),                  array("len" => 20, "name" => "c_varchar_19", "type" => "varchar(19)", "value" => "0123456789012345678"),                  array("len" => 4, "name" => "c_int", "type" => "INT", "value" => 1),                  array("len" => 8, "name" => "c_bigint", "type" => "BIGINT", "value" => 1),                  array("len" => 50, "name" => "c_varchar_49", "type" => "varchar(49)", "value" => "0123456789012345678901234567890123456789012345678"),                  array("len" => 4, "name" => "c_float_24", "type" => "FLOAT(24)", "value" => 1),                  array("len" => 150, "name" => "c_varchar_149", "type" => "varchar(149)", "value" => "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678"),                  array("len" => 8, "name" => "c_float_25", "type" => "FLOAT(25)", "value" => 1),                  array("len" => 4, "name" => "c_float", "type" => "FLOAT", "value" => 1),                                    array("len" => 8, "name" => "c_double", "type" => "DOUBLE", "value" => 1),                  array("len" => 100, "name" => "c_varchar_99", "type" => "varchar(99)", "value" => "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678"),                  array("len" => 3, "name" => "c_date", "type" => "DATE", "value" => "2007-01-17"),                  array("len" => 8, "name" => "c_datetime", "type" => "DATETIME", "value" => "2007-01-17 11:53:00"),                  array("len" => 4, "name" => "c_timestamp", "type" => "TIMESTAMP", "value" => "2007-01-17 11:54:00"),                  array("len" => 3, "name" => "c_time", "type" => "TIME", "value" => "11:54:00"),                  array("len" => 1, "name" => "c_year", "type" => "YEAR", "value" => "2007"),                  array("len" => 10, "name" => "c_char_10", "type" => "CHAR(10)", "value" => "0123456789"),                  array("len" => 1, "name" => "c_enum", "type" => "ENUM('true', 'false')", "value" => "true"),                  // let's assume latin1                                    array("len" => 300, "name" => "c_varchar_99", "type" => "varchar(298)", "value" => "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567"),                                  );$rows = array(2000);foreach ($rows as $k => $num_rows) {  foreach ($columns as $k => $num_columns) {          $num_column_types = count($column_types);    $total_len = 0;    for ($i = 0; $i < $num_columns; $i++) {      $total_len += $column_types[$i % $num_column_types]['len'];    }    $times[$num_rows . ' row[s]: ' . $num_columns . ' column[s] (' . $total_len . ' bytes) overall'] = 0;    $times[$num_rows . ' row[s]: ' . $num_columns . ' column[s] (' . $total_len . ' bytes) fetch()'] = 0;  }}$description = 'Connect, create n-rows with one m-columns of different types, SELECT all (buffered), close. n and m vary.';$errors = array();do {       if (!$link = mysqli_connect($host, $user, $passwd, $db, $port, $socket)) {    $errors[] = sprintf("Connect failure (converted code: %s)\n", ($flag_original_code) ? 'no' : 'yes');    break;  }    foreach ($rows as $k => $num_rows) {            foreach ($columns as $k => $num_columns) {          if (!mysqli_query($link, "DROP TABLE IF EXISTS test")) {        $errors[] = sprintf("DROP TABLE failed (converted code: %s): [%d] %s\n",           ($flag_original_code) ? 'no' : 'yes',          mysqli_errno($link), mysqli_error($link));        break 3;      }            $num_column_types = count($column_types);            $total_len = 0;      $column_names = $column_defs = $column_values = '';      for ($i = 0; $i < $num_columns; $i++) {        $index = $i % $num_column_types;        $total_len += $column_types[$index]['len'];        $column_names .= sprintf("%s_%d, ", $column_types[$index]['name'], $i);        $column_defs .= sprintf("%s_%d %s, ", $column_types[$index]['name'], $i, $column_types[$index]['type']);        $column_values .= sprintf("%s%s%s, ",          (is_string($column_types[$index]['value'])) ? '"' : '',          $column_types[$index]['value'],          (is_string($column_types[$index]['value'])) ? '"' : ''        );              }      $last_column = sprintf("%s_%d", $column_types[$index]['name'], $i - 1);      $last_value = $column_types[$index]['value'];        $sql = sprintf("CREATE TABLE test(%s)", substr($column_defs, 0, -2));      if (!mysqli_query($link, $sql)) {        $errors[] = sprintf("%s failed (converted code: %s): [%d] %s\n",           $sql,          ($flag_original_code) ? 'no' : 'yes',          mysqli_errno($link), mysqli_error($link));        break 3;      }            $sql = sprintf("INSERT INTO test(%s) VALUES (%s)", substr($column_names, 0, -2), substr($column_values, 0, -2));      for ($i = 0; $i < $num_rows; $i++) {        if (!mysqli_query($link, $sql)) {          $errors[] = sprintf("%s failed (converted code: %s): [%d] %s\n",             $sql,            ($flag_original_code) ? 'no' : 'yes',            mysqli_errno($link), mysqli_error($link));          break 4;        }      }            $times[$num_rows . ' row[s]: ' . $num_columns . ' column[s] (' . $total_len . ' bytes) overall'] = microtime(true);      if (!$res = mysqli_query($link, 'SELECT * FROM test')) {        $errors[] = sprintf("SELECT failed (converted code: %s): [%d] %s\n",           $sql,          ($flag_original_code) ? 'no' : 'yes',          mysqli_errno($link), mysqli_error($link));        break 3;      }            $start = microtime(true);      while ($row = mysqli_fetch_assoc($res))        if ($row[$last_column] != $last_value) {          $errors[] = sprintf("fetch() failed (converted code: %s): [%d] %s\n",                         ($flag_original_code) ? 'no' : 'yes',            mysqli_errno($link), mysqli_error($link));            var_dump($row);            var_dump($last_column);            var_dump($last_value);          break 4;                  }      $times[$num_rows . ' row[s]: ' . $num_columns . ' column[s] (' . $total_len . ' bytes) fetch()'] += (microtime(true) - $start);            mysqli_free_result($res);      $times[$num_rows . ' row[s]: ' . $num_columns . ' column[s] (' . $total_len . ' bytes) overall'] = microtime(true) - $times[$num_rows . ' row[s]: ' . $num_columns . ' column[s] (' . $total_len . ' bytes) overall'];                            }  }    mysqli_close($link);  } while (false);?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -