/hphp/test/zend/bad/ext/mysqli/tests/mysqli_class_mysqli_properties_no_conn.php

https://gitlab.com/iranjith4/hhvm · PHP · 133 lines · 104 code · 28 blank · 1 comment · 3 complexity · a9a153673b259b113beac923efb3e39d MD5 · raw file

  1. <?php
  2. $test_table_name = 'test_mysqli_class_mysqli_properties_no_conn_table_1'; require('table.inc');
  3. function dump_properties($mysqli) {
  4. printf("\nClass variables:\n");
  5. $variables = array_keys(get_class_vars(get_class($mysqli)));
  6. sort($variables);
  7. foreach ($variables as $k => $var) {
  8. printf("%s = '%s'\n", $var, var_export(@$mysqli->$var, true));
  9. }
  10. printf("\nObject variables:\n");
  11. $variables = array_keys(get_object_vars($mysqli));
  12. foreach ($variables as $k => $var) {
  13. printf("%s = '%s'\n", $var, var_export(@$mysqli->$var, true));
  14. }
  15. printf("\nMagic, magic properties:\n");
  16. assert(@mysqli_affected_rows($mysqli) === @$mysqli->affected_rows);
  17. printf("mysqli->affected_rows = '%s'/%s ('%s'/%s)\n",
  18. @$mysqli->affected_rows, gettype(@$mysqli->affected_rows),
  19. @mysqli_affected_rows($mysqli), gettype(@mysqli_affected_rows($mysqli)));
  20. assert(@mysqli_get_client_info() === @$mysqli->client_info);
  21. printf("mysqli->client_info = '%s'/%s ('%s'/%s)\n",
  22. @$mysqli->client_info, gettype(@$mysqli->client_info),
  23. @mysqli_get_client_info(), gettype(@mysqli_get_client_info()));
  24. assert(@mysqli_get_client_version() === @$mysqli->client_version);
  25. printf("mysqli->client_version = '%s'/%s ('%s'/%s)\n",
  26. @$mysqli->client_version, gettype(@$mysqli->client_version),
  27. @mysqli_get_client_version(), gettype(@mysqli_get_client_version()));
  28. assert(@mysqli_errno($mysqli) === @$mysqli->errno);
  29. printf("mysqli->errno = '%s'/%s ('%s'/%s)\n",
  30. @$mysqli->errno, gettype(@$mysqli->errno),
  31. @mysqli_errno($mysqli), gettype(@mysqli_errno($mysqli)));
  32. assert(@mysqli_error($mysqli) === @$mysqli->error);
  33. printf("mysqli->error = '%s'/%s ('%s'/%s)\n",
  34. @$mysqli->error, gettype(@$mysqli->error),
  35. @mysqli_error($mysqli), gettype(@mysqli_error($mysqli)));
  36. assert(@mysqli_field_count($mysqli) === @$mysqli->field_count);
  37. printf("mysqli->field_count = '%s'/%s ('%s'/%s)\n",
  38. @$mysqli->field_count, gettype(@$mysqli->field_count),
  39. @mysqli_field_count($mysqli), gettype(@mysqli_field_count($mysqli)));
  40. assert(@mysqli_insert_id($mysqli) === @$mysqli->insert_id);
  41. printf("mysqli->insert_id = '%s'/%s ('%s'/%s)\n",
  42. @$mysqli->insert_id, gettype(@$mysqli->insert_id),
  43. @mysqli_insert_id($mysqli), gettype(@mysqli_insert_id($mysqli)));
  44. assert(@mysqli_sqlstate($mysqli) === @$mysqli->sqlstate);
  45. printf("mysqli->sqlstate = '%s'/%s ('%s'/%s)\n",
  46. @$mysqli->sqlstate, gettype(@$mysqli->sqlstate),
  47. @mysqli_sqlstate($mysqli), gettype(@mysqli_sqlstate($mysqli)));
  48. assert(@mysqli_get_host_info($mysqli) === @$mysqli->host_info);
  49. printf("mysqli->host_info = '%s'/%s ('%s'/%s)\n",
  50. @$mysqli->host_info, gettype(@$mysqli->host_info),
  51. @mysqli_get_host_info($mysqli), gettype(@mysqli_get_host_info($mysqli)));
  52. /* note that the data types are different */
  53. assert(@mysqli_info($mysqli) == @$mysqli->info);
  54. printf("mysqli->info = '%s'/%s ('%s'/%s)\n",
  55. @$mysqli->info, gettype(@$mysqli->info),
  56. @mysqli_info($mysqli), gettype(@mysqli_info($mysqli)));
  57. assert(@mysqli_thread_id($mysqli) > @$mysqli->thread_id);
  58. assert(gettype(@$mysqli->thread_id) == gettype(@mysqli_thread_id($mysqli)));
  59. printf("mysqli->thread_id = '%s'/%s ('%s'/%s)\n",
  60. @$mysqli->thread_id, gettype(@$mysqli->thread_id),
  61. @mysqli_thread_id($mysqli), gettype(@mysqli_thread_id($mysqli)));
  62. assert(@mysqli_get_proto_info($mysqli) === @$mysqli->protocol_version);
  63. printf("mysqli->protocol_version = '%s'/%s ('%s'/%s)\n",
  64. @$mysqli->protocol_version, gettype(@$mysqli->protocol_version),
  65. @mysqli_get_proto_info($mysqli), gettype(@mysqli_get_proto_info($mysqli)));
  66. assert(@mysqli_get_server_info($mysqli) === @$mysqli->server_info);
  67. printf("mysqli->server_info = '%s'/%s ('%s'/%s)\n",
  68. @$mysqli->server_info, gettype(@$mysqli->server_info),
  69. @mysqli_get_server_info($mysqli), gettype(@mysqli_get_server_info($mysqli)));
  70. assert(@mysqli_get_server_version($mysqli) === @$mysqli->server_version);
  71. printf("mysqli->server_version = '%s'/%s ('%s'/%s)\n",
  72. @$mysqli->server_version, gettype(@$mysqli->server_version),
  73. @mysqli_get_server_version($mysqli), gettype(@mysqli_get_server_version($mysqli)));
  74. assert(@mysqli_warning_count($mysqli) === @$mysqli->warning_count);
  75. printf("mysqli->warning_count = '%s'/%s ('%s'/%s)\n",
  76. @$mysqli->warning_count, gettype(@$mysqli->warning_count),
  77. @mysqli_warning_count($mysqli), gettype(@mysqli_warning_count($mysqli)));
  78. printf("\nAccess to undefined properties:\n");
  79. printf("mysqli->unknown = '%s'\n", @$mysqli->unknown);
  80. @$mysqli->unknown = 13;
  81. printf("setting mysqli->unknown, @mysqli_unknown = '%s'\n", @$mysqli->unknown);
  82. $unknown = 'friday';
  83. @$mysqli->unknown = $unknown;
  84. printf("setting mysqli->unknown, @mysqli_unknown = '%s'\n", @$mysqli->unknown);
  85. printf("\nAccess hidden properties for MYSLQI_STATUS_INITIALIZED (TODO documentation):\n");
  86. assert(@mysqli_connect_error() === @$mysqli->connect_error);
  87. printf("mysqli->connect_error = '%s'/%s ('%s'/%s)\n",
  88. @$mysqli->connect_error, gettype(@$mysqli->connect_error),
  89. @mysqli_connect_error(), gettype(@mysqli_connect_error()));
  90. assert(@mysqli_connect_errno() === @$mysqli->connect_errno);
  91. printf("mysqli->connect_errno = '%s'/%s ('%s'/%s)\n",
  92. @$mysqli->connect_errno, gettype(@$mysqli->connect_errno),
  93. @mysqli_connect_errno(), gettype(@mysqli_connect_errno()));
  94. }
  95. printf("Without RS\n");
  96. $mysqli = @new mysqli($host, $user, $passwd . "invalid", $db, $port, $socket);
  97. dump_properties($mysqli);
  98. printf("With RS\n");
  99. $mysqli = @new mysqli($host, $user, $passwd . "invalid", $db, $port, $socket);
  100. $res = @$mysqli->query("SELECT * FROM test_mysqli_class_mysqli_properties_no_conn_table_1");
  101. dump_properties($mysqli);
  102. print "done!";
  103. ?>
  104. <?php error_reporting(0); ?>
  105. <?php $test_table_name = 'test_mysqli_class_mysqli_properties_no_conn_table_1'; require_once("clean_table.inc"); ?>