<?php if (!isset($buscar)) { echo "Debe especificar una cadena a bucar"; echo "</html></body> \n"; exit; } //$link = mysql_connect("localhost", "nobody"); //mysql_select_db("mydb", $link); require_once "../handyq/includes/mysql.php"; $db = new MySQL(); $result = mysqli_query($mysqli, "SELECT * FROM enlaces WHERE titulo LIKE '%{$buscar}%' ORDER BY titulo"); if ($row = mysqli_fetch_array($result)) { echo "<table border = '1'> \n"; //Mostramos los nombres de las tablas echo "<tr> \n"; while ($field = ($___mysqli_tmp = mysqli_fetch_field_direct($result, mysqli_field_tell($result))) && is_object($___mysqli_tmp) ? !is_null($___mysqli_tmp->primary_key = $___mysqli_tmp->flags & MYSQLI_PRI_KEY_FLAG ? 1 : 0) && !is_null($___mysqli_tmp->multiple_key = $___mysqli_tmp->flags & MYSQLI_MULTIPLE_KEY_FLAG ? 1 : 0) && !is_null($___mysqli_tmp->unique_key = $___mysqli_tmp->flags & MYSQLI_UNIQUE_KEY_FLAG ? 1 : 0) && !is_null($___mysqli_tmp->numeric = (int) ($___mysqli_tmp->type <= MYSQLI_TYPE_INT24 || $___mysqli_tmp->type == MYSQLI_TYPE_YEAR || (defined("MYSQLI_TYPE_NEWDECIMAL") ? $___mysqli_tmp->type == MYSQLI_TYPE_NEWDECIMAL : 0))) && !is_null($___mysqli_tmp->blob = (int) in_array($___mysqli_tmp->type, array(MYSQLI_TYPE_TINY_BLOB, MYSQLI_TYPE_BLOB, MYSQLI_TYPE_MEDIUM_BLOB, MYSQLI_TYPE_LONG_BLOB))) && !is_null($___mysqli_tmp->unsigned = $___mysqli_tmp->flags & MYSQLI_UNSIGNED_FLAG ? 1 : 0) && !is_null($___mysqli_tmp->zerofill = $___mysqli_tmp->flags & MYSQLI_ZEROFILL_FLAG ? 1 : 0) && !is_null($___mysqli_type = $___mysqli_tmp->type) && !is_null($___mysqli_tmp->type = $___mysqli_type == MYSQLI_TYPE_STRING || $___mysqli_type == MYSQLI_TYPE_VAR_STRING ? "type" : "") && !is_null($___mysqli_tmp->type = "" == $___mysqli_tmp->type && in_array($___mysqli_type, array(MYSQLI_TYPE_TINY, MYSQLI_TYPE_SHORT, MYSQLI_TYPE_LONG, MYSQLI_TYPE_LONGLONG, MYSQLI_TYPE_INT24)) ? "int" : $___mysqli_tmp->type) && !is_null($___mysqli_tmp->type = "" == $___mysqli_tmp->type && in_array($___mysqli_type, array(MYSQLI_TYPE_FLOAT, MYSQLI_TYPE_DOUBLE, MYSQLI_TYPE_DECIMAL, defined("MYSQLI_TYPE_NEWDECIMAL") ? constant("MYSQLI_TYPE_NEWDECIMAL") : -1)) ? "real" : $___mysqli_tmp->type) && !is_null($___mysqli_tmp->type = "" == $___mysqli_tmp->type && $___mysqli_type == MYSQLI_TYPE_TIMESTAMP ? "timestamp" : $___mysqli_tmp->type) && !is_null($___mysqli_tmp->type = "" == $___mysqli_tmp->type && $___mysqli_type == MYSQLI_TYPE_YEAR ? "year" : $___mysqli_tmp->type) && !is_null($___mysqli_tmp->type = "" == $___mysqli_tmp->type && ($___mysqli_type == MYSQLI_TYPE_DATE || $___mysqli_type == MYSQLI_TYPE_NEWDATE) ? "date " : $___mysqli_tmp->type) && !is_null($___mysqli_tmp->type = "" == $___mysqli_tmp->type && $___mysqli_type == MYSQLI_TYPE_TIME ? "time" : $___mysqli_tmp->type) && !is_null($___mysqli_tmp->type = "" == $___mysqli_tmp->type && $___mysqli_type == MYSQLI_TYPE_SET ? "set" : $___mysqli_tmp->type) && !is_null($___mysqli_tmp->type = "" == $___mysqli_tmp->type && $___mysqli_type == MYSQLI_TYPE_ENUM ? "enum" : $___mysqli_tmp->type) && !is_null($___mysqli_tmp->type = "" == $___mysqli_tmp->type && $___mysqli_type == MYSQLI_TYPE_GEOMETRY ? "geometry" : $___mysqli_tmp->type) && !is_null($___mysqli_tmp->type = "" == $___mysqli_tmp->type && $___mysqli_type == MYSQLI_TYPE_DATETIME ? "datetime" : $___mysqli_tmp->type) && !is_null($___mysqli_tmp->type = "" == $___mysqli_tmp->type && in_array($___mysqli_type, array(MYSQLI_TYPE_TINY_BLOB, MYSQLI_TYPE_BLOB, MYSQLI_TYPE_MEDIUM_BLOB, MYSQLI_TYPE_LONG_BLOB)) ? "blob" : $___mysqli_tmp->type) && !is_null($___mysqli_tmp->type = "" == $___mysqli_tmp->type && $___mysqli_type == MYSQLI_TYPE_NULL ? "null" : $___mysqli_tmp->type) && !is_null($___mysqli_tmp->type = "" == $___mysqli_tmp->type ? "unknown" : $___mysqli_tmp->type) && !is_null($___mysqli_tmp->not_null = $___mysqli_tmp->flags & MYSQLI_NOT_NULL_FLAG ? 1 : 0) : false ? $___mysqli_tmp : false) { echo "<td>{$field->name}</td> \n"; } echo "</tr> \n"; do { echo "<tr> \n"; echo "<td>" . $row["id"] . "</td> \n"; echo "<td>" . $row["titulo"] . "</td> \n"; echo "<td><a href='http://" . $row["link"] . "'>" . $row["link"] . "</a></td> \n"; echo "</tr> \n"; } while ($row = mysqli_fetch_array($result)); echo "</table> \n"; } else { echo "¡ No se ha encontrado ningún registro !"; } ?>
} var_dump(mysqli_field_seek($res, -1)); var_dump(mysqli_fetch_field($res)); var_dump(mysqli_field_seek($res, 0)); var_dump(mysqli_fetch_field($res)); var_dump(mysqli_field_seek($res, 1)); $field = mysqli_fetch_field($res); var_dump($field); /* label column, result set charset */ if ($field->charsetnr != $charsetInfo->number) { printf("[004] Expecting charset %s/%d got %d\n", $charsetInfo->charset, $charsetInfo->number, $field->charsetnr); } if ($field->length != $charsetInfo->max_length) { printf("[005] Expecting length %d got %d\n", $charsetInfo->max_length, $field->max_length); } var_dump(mysqli_field_tell($res)); var_dump(mysqli_field_seek($res, 2)); var_dump(mysqli_fetch_field($res)); var_dump(mysqli_field_seek($res, PHP_INT_MAX + 1)); mysqli_free_result($res); if (!($res = mysqli_query($link, "SELECT NULL as _null", MYSQLI_STORE_RESULT))) { printf("[005] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); } var_dump(mysqli_field_seek($res, 0)); var_dump(mysqli_fetch_field($res)); mysqli_free_result($res); var_dump(mysqli_field_seek($res, 0)); mysqli_close($link); print "done!"; error_reporting(0); $test_table_name = 'test_mysqli_field_seek_table_1';
function testStatement($offset, $link, $sql, $expected_lib, $expected_mysqlnd, $check_mysqlnd, $compare) { if (!($stmt = mysqli_stmt_init($link))) { printf("[%04d - %s] [%d] %s\n", $offset, $sql, mysqli_errno($link), mysqli_error($link)); return false; } if (!@mysqli_stmt_prepare($stmt, $sql)) { /* Not all server versions will support all statements */ /* Failing to prepare is OK */ return true; } if (empty($expected_lib) && false !== $res) { printf("[%04d - %s] No metadata expected\n", $offset + 1, $sql); return false; } else { if (!empty($expected_lib) && false == $res) { printf("[%04d - %s] Metadata expected\n", $offset + 2, $sql); return false; } } if (!empty($expected_lib)) { if (!is_object($res)) { printf("[%04d - %s] [%d] %s\n", $offset + 3, $sql, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); return false; } if (get_class($res) != 'mysqli_result') { printf("[%04d - %s] Expecting object/mysqli_result got object/%s\n", $offset + 4, $sql, get_class($res)); return false; } $meta = array('num_fields' => mysqli_num_fields($res), 'fetch_field' => mysqli_fetch_field($res), 'fetch_field_direct0' => mysqli_fetch_field_direct($res, 0), 'fetch_field_direct1' => @mysqli_fetch_field_direct($res, 1), 'fetch_fields' => count(mysqli_fetch_fields($res)), 'field_count' => $res->field_count, 'field_seek-1' => @mysqli_field_seek($res, -1), 'field_seek0' => mysqli_field_seek($res, 0), 'field_tell' => mysqli_field_tell($res)); if (is_object($meta['fetch_field'])) { $meta['fetch_field']->charsetnr = 'ignore'; $meta['fetch_field']->flags = 'ignore'; } if (is_object($meta['fetch_field_direct0'])) { $meta['fetch_field_direct0']->charsetnr = 'ignore'; $meta['fetch_field_direct0']->flags = 'ignore'; } if (is_object($meta['fetch_field_direct1'])) { $meta['fetch_field_direct1']->charsetnr = 'ignore'; $meta['fetch_field_direct1']->flags = 'ignore'; } mysqli_free_result($res); if ($meta != $expected_lib) { printf("[%04d - %s] Metadata differs from expected values\n", $offset + 5, $sql); var_dump($meta); var_dump($expected_lib); return false; } } if (function_exists('mysqli_stmt_get_result')) { /* mysqlnd only */ if (!mysqli_stmt_execute($stmt)) { printf("[%04d - %s] [%d] %s\n", $offset + 6, $sql, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); return false; } $res = mysqli_stmt_get_result($stmt); if (false === $res && !empty($expected_mysqlnd)) { printf("[%04d - %s] Expecting resultset [%d] %s\n", $offset + 7, $sql, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); return false; } else { if (empty($expected_mysqlnd) && false !== $res) { printf("[%04d - %s] Unexpected resultset [%d] %s\n", $offset + 8, $sql, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); return false; } } if (!is_object($res)) { printf("[%04d - %s] [%d] %s\n", $offset + 9, $sql, mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt)); return false; } if ('mysqli_result' != get_class($res)) { printf("[%04d - %s] Expecting object/mysqli_result got object/%s\n", $offset + 10, $sql, get_class($res)); return false; } $meta_res = array('num_fields' => mysqli_num_fields($res), 'fetch_field' => mysqli_fetch_field($res), 'fetch_field_direct0' => mysqli_fetch_field_direct($res, 0), 'fetch_field_direct1' => @mysqli_fetch_field_direct($res, 1), 'fetch_fields' => count(mysqli_fetch_fields($res)), 'field_count' => mysqli_field_count($link), 'field_seek-1' => @mysqli_field_seek($res, -1), 'field_seek0' => mysqli_field_seek($res, 0), 'field_tell' => mysqli_field_tell($res)); if (is_object($meta_res['fetch_field'])) { $meta_res['fetch_field']->charsetnr = 'ignore'; $meta_res['fetch_field']->flags = 'ignore'; } if (is_object($meta_res['fetch_field_direct0'])) { $meta_res['fetch_field_direct0']->charsetnr = 'ignore'; $meta_res['fetch_field_direct0']->flags = 'ignore'; } if (is_object($meta_res['fetch_field_direct1'])) { $meta_res['fetch_field_direct1']->charsetnr = 'ignore'; $meta_res['fetch_field_direct1']->flags = 'ignore'; } mysqli_free_result($res); if ($check_mysqlnd && $meta_res != $expected_mysqlnd) { printf("[%04d - %s] Metadata differs from expected\n", $offset + 11, $sql); var_dump($meta_res); var_dump($expected_mysqlnd); } else { if ($meta_res['field_count'] < 1) { printf("[%04d - %s] Metadata seems wrong, no fields?\n", $offset + 12, $sql); var_dump($meta_res); var_dump(mysqli_fetch_assoc($res)); } } if ($compare && $meta_res != $meta) { printf("[%04d - %s] Metadata returned by mysqli_stmt_result_metadata() and mysqli_stmt_get_result() differ\n", $offset + 13, $sql); var_dump($meta_res); var_dump($meta); } } mysqli_stmt_close($stmt); return true; }
$tmp2->max_length = $tmp1->max_length; if ($tmp1 != $tmp2) { printf("[029] Field info differs, dumping data\n"); var_dump($tmp1); var_dump($tmp2); } if ($tmp1 != $fields['res'][$pos]) { printf("[030] Field info differs, dumping data\n"); var_dump($tmp1); var_dump($fields['res'][$pos]); } $pos++; if ($pos !== ($tmp = mysqli_field_tell($res))) { printf("[031] Expecting %s/%s got %s/%s\n", gettype($pos), $pos, gettype($tmp), $tmp); } if ($pos !== ($tmp = mysqli_field_tell($res_meta))) { printf("[032] Expecting %s/%s got %s/%s\n", gettype($pos), $pos, gettype($tmp), $tmp); } } else { if (false !== @mysqli_field_seek($res, $pos)) { printf("[033] field_seek(%d) did not fail\n", $pos); } if (false !== @mysqli_field_seek($res_meta, $pos)) { printf("[034] field_seek(%d) did not fail\n", $pos); } } } $res->free_result(); mysqli_free_result($res_meta); var_dump(mysqli_fetch_field($res)); mysqli_stmt_close($stmt);
if (empty($expected_methods) && empty($methods)) { printf("ok\n"); } printf("\nClass variables:\n"); $variables = array_keys(get_class_vars(get_class($mysqli_result))); sort($variables); foreach ($variables as $k => $var) { printf("%s\n", $var); } printf("\nObject variables:\n"); $variables = array_keys(get_object_vars($mysqli_result)); foreach ($variables as $k => $var) { printf("%s\n", $var); } printf("\nMagic, magic properties:\n"); assert(($tmp = mysqli_field_tell($res)) === $mysqli_result->current_field); printf("mysqli_result->current_field = '%s'/%s ('%s'/%s)\n", $mysqli_result->current_field, gettype($mysqli_result->current_field), $tmp, gettype($tmp)); assert(($tmp = mysqli_field_count($link)) === $mysqli_result->field_count); printf("mysqli_result->field_count = '%s'/%s ('%s'/%s)\n", $mysqli_result->field_count, gettype($mysqli_result->field_count), $tmp, gettype($tmp)); assert(($tmp = mysqli_fetch_lengths($res)) === $mysqli_result->lengths); printf("mysqli_result->lengths -> '%s'/%s ('%s'/%s)\n", is_array($mysqli_result->lengths) ? implode(' ', $mysqli_result->lengths) : 'n/a', gettype($mysqli_result->lengths), is_array($tmp) ? implode(' ', $tmp) : 'n/a', gettype($tmp)); assert(($tmp = mysqli_num_rows($res)) === $mysqli_result->num_rows); printf("mysqli_result->num_rows = '%s'/%s ('%s'/%s)\n", $mysqli_result->num_rows, gettype($mysqli_result->num_rows), $tmp, gettype($tmp)); assert(in_array($mysqli_result->type, array(MYSQLI_STORE_RESULT, MYSQLI_USE_RESULT))); printf("mysqli_result->type = '%s'/%s\n", MYSQLI_STORE_RESULT == $mysqli_result->type ? 'store' : 'use', gettype($mysqli_result->type)); printf("\nAccess to undefined properties:\n"); printf("mysqli_result->unknown = '%s'\n", @$mysqli_result->unknown); printf("\nConstructor:\n"); if (!is_object($res = new mysqli_result($link))) { printf("[001] Expecting object/mysqli_result got %s/%s\n", gettye($res), $res); }
} if (empty($tmp[0]) || empty($tmp[1]) || $tmp[0] != $field0_direct) { printf("[012] mysqli_fetch_fields() return value is suspicious\n"); var_dump($tmp); } if (!mysqli_field_seek($res, 1)) { printf("[013] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); } if (!is_object($field1_direct = mysqli_fetch_field_direct($res, 1))) { printf("[014] Expecting object, got %s/%s, [%d] %s\n", gettype($field1_direct), $field1_direct, mysqli_errno($link), mysqli_error($link)); } if ($tmp[1] != $field1_direct) { printf("[015] mysqli_fetch_field_direct() differs from mysqli_fetch_fields()\n"); var_dump($field1_direct); var_dump($tmp); } if (1 !== ($tmp = mysqli_field_tell($res))) { printf("[016] Expecting int/1, got %s/%s, [%d] %s\n", gettype($tmp), $tmp, mysqli_errno($link), mysqli_error($link)); } mysqli_free_result($res); mysqli_stmt_close($stmt); if (NULL !== ($tmp = mysqli_stmt_result_metadata($stmt))) { printf("[017] Expecting NULL, got %s/%s\n"); } /* 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_result_metadata())) { printf("[018] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); } mysqli_close($link); print "done!";