} if ('mysqli_warning' !== get_class($warning)) { printf("[011] Expecting object of type mysqli_warning got type '%s'", get_class($warning)); } if (!method_exists($warning, 'next')) { printf("[012] Object mysqli_warning seems to lack method next()\n"); } $i = 0; do { if ('' == $warning->message) { printf("[013 - %d] Message should not be empty\n", $i); } if ('' == $warning->sqlstate) { printf("[014 - %d] SQL State should not be empty\n", $i); } if (0 == $warning->errno) { printf("[015 - %d] Error number should not be zero\n", $i); } $i++; } while ($warning->next()); if (2 != $i) { printf("[016] Expected 2 warnings, got %d warnings\n", $i); } mysqli_stmt_close($stmt); if (NULL !== ($tmp = mysqli_stmt_get_warnings($stmt))) { printf("[015] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); } mysqli_close($link); print "done!"; $test_table_name = 'test_mysqli_stmt_get_warnings_table_1'; require_once "clean_table.inc";
/** * 通常用这个执行多条的插入和更新 * Enter description here ... * @param string $sql * @param i-int,d-double,s-string,b-blob $params_type * @param array $array_bind_param */ public function prepareExec($sql, $params_types, $array_bind_param) { if ($stmt = mysqli_prepare($this->link, $sql) or $this->error(mysqli_error($this->link))) { $length = strlen($params_types); //有几个绑定类型,肯定就有几个绑定变量 foreach ($array_bind_param as &$value) { $exec = '$stmt->bind_param(\'' . $params_types . '\''; for ($i = 0; $i < $length; $i++) { $exec .= ' , $value[' . $i . '] '; } $exec .= ");"; echo '</br>', $exec, '</br>'; eval($exec); $stmt->execute(); $exex = null; } $stmt->close(); } else { var_dump(mysqli_stmt_get_warnings($stmt)); debug_print_backtrace(); } }