失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > PHP连接SQL SERVER 数据库 PHP连接MYSQL数据库并解决中文乱码问题。

PHP连接SQL SERVER 数据库 PHP连接MYSQL数据库并解决中文乱码问题。

时间:2018-10-23 10:54:29

相关推荐

PHP连接SQL SERVER 数据库 PHP连接MYSQL数据库并解决中文乱码问题。

PHP连接SQL SERVER或者MYSQL 过程都是差不多的。上次写了连接代码,其实还有前置准备工作。这次补上。

主要参考文献:

/xiaozhegaa/article/details/53741623

这里已经写的很详细了。

首先需要确认你的PHP服务器是否已经安装有连接数据库的插件,

检查文件是否存在。如果没有就去下载驱动:

D:\phpStudy\php\php-5.3.29-nts\ext

文件夹下是否存在:

;我的自己加上去的

extension=php_sqlsrv_53_nts.dll

extension=php_pdo_sqlsrv_53_nts.dll

extension=php_mssql.dll

extension=php_dblib.dll

这几个DLL文件。

然后在配置文件把注释去除前面的;符号。

我的php.ini

[PHP];;;;;;;;;;;;;;;;;;;; About php.ini ;;;;;;;;;;;;;;;;;;;;; PHP's initialization file, generally called php.ini, is responsible for; configuring many of the aspects of PHP's behavior.; PHP attempts to find and load this configuration from a number of locations.; The following is a summary of its search order:; 1. SAPI module specific location.; 2. The PHPRC environment variable. (As of PHP 5.2.0); 3. A number of predefined registry keys on Windows (As of PHP 5.2.0); 4. Current working directory (except CLI); 5. The web server's directory (for SAPI modules), or directory of PHP; (otherwise in Windows); 6. The directory from the --with-config-file-path compile time option, or the; Windows directory (C:\windows or C:\winnt); See the PHP docs for more specific information.; /configuration.file; The syntax of the file is extremely simple. Whitespace and lines; beginning with a semicolon are silently ignored (as you probably guessed).; Section headers (e.g. [Foo]) are also silently ignored, even though; they might mean something in the future.; Directives following the section heading [PATH=/www/mysite] only; apply to PHP files in the /www/mysite directory. Directives; following the section heading [HOST=] only apply to; PHP files served from . Directives set in these; special sections cannot be overridden by user-defined INI files or; at runtime. Currently, [PATH=] and [HOST=] sections only work under; CGI/FastCGI.; /ini.sections; Directives are specified using the following syntax:; directive = value; Directive names are *case sensitive* - foo=bar is different from FOO=bar.; Directives are variables used to configure PHP or PHP extensions.; There is no name validation. If PHP can't find an expected; directive because it is not set or is mistyped, a default value will be used.; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one; of the INI constants (On, Off, True, False, Yes, No and None) or an expression; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a; previously set variable or directive (e.g. ${foo}); Expressions in the INI file are limited to bitwise operators and parentheses:; | bitwise OR; ^ bitwise XOR; & bitwise AND; ~ bitwise NOT; ! boolean NOT; Boolean flags can be turned on using the values 1, On, True or Yes.; They can be turned off using the values 0, Off, False or No.; An empty string can be denoted by simply not writing anything after the equal; sign, or by using the None keyword:; foo = ; sets foo to an empty string; foo = None ; sets foo to an empty string; foo = "None" ; sets foo to the string 'None'; If you use constants in your value, and these constants belong to a; dynamically loaded extension (either a PHP extension or a Zend extension),; you may only use these constants *after* the line that loads the extension.;;;;;;;;;;;;;;;;;;;; About this file ;;;;;;;;;;;;;;;;;;;;; PHP comes packaged with two INI files. One that is recommended to be used; in production environments and one that is recommended to be used in; development environments.; php.ini-production contains settings which hold security, performance and; best practices at its core. But please be aware, these settings may break; compatibility with older or less security conscience applications. We; recommending using the production ini in production and testing environments.; php.ini-development is very similar to its production variant, except it's; much more verbose when it comes to errors. We recommending using the; development version only in development environments as errors shown to; application users can inadvertently leak otherwise secure information.;;;;;;;;;;;;;;;;;;;; Quick Reference ;;;;;;;;;;;;;;;;;;;;; The following are all the settings which are different in either the production; or development versions of the INIs with respect to PHP's default behavior.; Please see the actual settings later in the document for more details as to why; we recommend these changes in PHP's behavior.; allow_call_time_pass_reference; Default Value: On; Development Value: Off; Production Value: Off; display_errors; Default Value: On; Development Value: On; Production Value: Off; display_startup_errors; Default Value: Off; Development Value: On; Production Value: Off; error_reporting; Default Value: E_ALL & ~E_NOTICE; Development Value: E_ALL | E_STRICT; Production Value: E_ALL & ~E_DEPRECATED; html_errors; Default Value: On; Development Value: On; Production value: Off; log_errors; Default Value: Off; Development Value: On; Production Value: On; magic_quotes_gpc; Default Value: On; Development Value: Off; Production Value: Off; max_input_time; Default Value: -1 (Unlimited); Development Value: 60 (60 seconds); Production Value: 60 (60 seconds); output_buffering; Default Value: Off; Development Value: 4096; Production Value: 4096; register_argc_argv; Default Value: On; Development Value: Off; Production Value: Off; register_long_arrays; Default Value: On; Development Value: Off; Production Value: Off; request_order; Default Value: None; Development Value: "GP"; Production Value: "GP"; session.bug_compat_42; Default Value: On; Development Value: On; Production Value: Off; session.bug_compat_warn; Default Value: On; Development Value: On; Production Value: Off; session.gc_divisor; Default Value: 100; Development Value: 1000; Production Value: 1000; session.hash_bits_per_character; Default Value: 4; Development Value: 5; Production Value: 5; short_open_tag; Default Value: On; Development Value: Off; Production Value: Off; track_errors; Default Value: Off; Development Value: On; Production Value: Off; url_rewriter.tags; Default Value: "a=href,area=href,frame=src,form=,fieldset="; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry"; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry"; variables_order; Default Value: "EGPCS"; Development Value: "GPCS"; Production Value: "GPCS";;;;;;;;;;;;;;;;;;;;; php.ini Options ;;;;;;;;;;;;;;;;;;;;;; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini";user_ini.filename = ".user.ini"; To disable this feature set this option to empty value;user_ini.filename =; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes);user_ini.cache_ttl = 300;;;;;;;;;;;;;;;;;;;;; Language Options ;;;;;;;;;;;;;;;;;;;;;; Enable the PHP scripting language engine under Apache.; /engineengine = On; This directive determines whether or not PHP will recognize code between; <? and ?> tags as PHP source which should be processed as such. It's been; recommended for several years that you not use the short tag "short cut" and; instead to use the full <?php and ?> tag combination. With the wide spread use; of XML and use of these tags by other languages, the server can become easily; confused and end up parsing the wrong code in the wrong context. But because; this short cut has been a feature for such a long time, it's currently still; supported for backwards compatibility, but we recommend you don't use them.; Default Value: On; Development Value: Off; Production Value: Off; /short-open-tagshort_open_tag = On; Allow ASP-style <% %> tags.; /asp-tagsasp_tags = Off; The number of significant digits displayed in floating point numbers.; /precisionprecision = 14; Enforce year 2000 compliance (will cause problems with non-compliant browsers); /y2k-compliancey2k_compliance = On; Output buffering is a mechanism for controlling how much output data; (excluding headers and cookies) PHP should keep internally before pushing that; data to the client. If your application's output exceeds this setting, PHP; will send that data in chunks of roughly the size you specify.; Turning on this setting and managing its maximum buffer size can yield some; interesting side-effects depending on your application and web server.; You may be able to send headers and cookies after you've already sent output; through print or echo. You also may see performance benefits if your server is; emitting less packets due to buffered output versus PHP streaming the output; as it gets it. On production servers, 4096 bytes is a good setting for performance; reasons.; Note: Output buffering can also be controlled via Output Buffering Control; functions.; Possible Values:; On = Enabled and buffer is unlimited. (Use with caution); Off = Disabled; Integer = Enables the buffer and sets its maximum size in bytes.; Note: This directive is hardcoded to Off for the CLI SAPI; Default Value: Off; Development Value: 4096; Production Value: 4096; /output-bufferingoutput_buffering = 4096; You can redirect all of the output of your scripts to a function. For; example, if you set output_handler to "mb_output_handler", character; encoding will be transparently converted to the specified encoding.; Setting any output handler automatically turns on output buffering.; Note: People who wrote portable scripts should not depend on this ini; directive. Instead, explicitly set the output handler using ob_start().; Using this ini directive may cause problems unless you know what script; is doing.; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler"; and you cannot use both "ob_gzhandler" and "zlib.output_compression".; Note: output_handler must be empty if this is set 'On' !!!!; Instead you must use zlib.output_handler.; /output-handler;output_handler =; Transparent output compression using the zlib library; Valid values for this option are 'off', 'on', or a specific buffer size; to be used for compression (default is 4KB); Note: Resulting chunk size may vary due to nature of compression. PHP; outputs chunks that are few hundreds bytes each as a result of; compression. If you prefer a larger chunk size for better; performance, enable output_buffering in addition.; Note: You need to use zlib.output_handler instead of the standard; output_handler, or otherwise the output will be corrupted.; /zlib.output-compressionzlib.output_compression = Off; /zlib.output-compression-level;zlib.output_compression_level = -1; You cannot specify additional output handlers if zlib.output_compression; is activated here. This setting does the same as output_handler but in; a different order.; /zlib.output-handler;zlib.output_handler =; Implicit flush tells PHP to tell the output layer to flush itself; automatically after every output block. This is equivalent to calling the; PHP function flush() after each and every call to print() or echo() and each; and every HTML block. Turning this option on has serious performance; implications and is generally recommended for debugging purposes only.; /implicit-flush; Note: This directive is hardcoded to On for the CLI SAPIimplicit_flush = Off; The unserialize callback function will be called (with the undefined class'; name as parameter), if the unserializer finds an undefined class; which should be instantiated. A warning appears if the specified function is; not defined, or if the function doesn't include/implement the missing class.; So only set this entry, if you really want to implement such a; callback-function.unserialize_callback_func =; When floats & doubles are serialized store serialize_precision significant; digits after the floating point. The default value ensures that when floats; are decoded with unserialize, the data will remain the same.serialize_precision = 17; This directive allows you to enable and disable warnings which PHP will issue; if you pass a value by reference at function call time. Passing values by; reference at function call time is a deprecated feature which will be removed; from PHP at some point in the near future. The acceptable method for passing a; value by reference to a function is by declaring the reference in the functions; definition, not at call time. This directive does not disable this feature, it; only determines whether PHP will warn you about it or not. These warnings; should enabled in development environments only.; Default Value: On (Suppress warnings); Development Value: Off (Issue warnings); Production Value: Off (Issue warnings); /allow-call-time-pass-referenceallow_call_time_pass_reference = Off; Safe Mode; /safe-modesafe_mode = Off; By default, Safe Mode does a UID compare check when; opening files. If you want to relax this to a GID compare,; then turn on safe_mode_gid.; /safe-mode-gidsafe_mode_gid = Off; When safe_mode is on, UID/GID checks are bypassed when; including files from this directory and its subdirectories.; (directory must also be in include_path or full path must; be used when including); /safe-mode-include-dirsafe_mode_include_dir =; When safe_mode is on, only executables located in the safe_mode_exec_dir; will be allowed to be executed via the exec family of functions.; /safe-mode-exec-dirsafe_mode_exec_dir =; Setting certain environment variables may be a potential security breach.; This directive contains a comma-delimited list of prefixes. In Safe Mode,; the user may only alter environment variables whose names begin with the; prefixes supplied here. By default, users will only be able to set; environment variables that begin with PHP_ (e.g. PHP_FOO=BAR).; Note: If this directive is empty, PHP will let the user modify ANY; environment variable!; /safe-mode-allowed-env-varssafe_mode_allowed_env_vars = PHP_; This directive contains a comma-delimited list of environment variables that; the end user won't be able to change using putenv(). These variables will be; protected even if safe_mode_allowed_env_vars is set to allow to change them.; /safe-mode-protected-env-varssafe_mode_protected_env_vars = LD_LIBRARY_PATH; open_basedir, if set, limits all file operations to the defined directory; and below. This directive makes most sense if used in a per-directory; or per-virtualhost web server configuration file. This directive is; *NOT* affected by whether Safe Mode is turned On or Off.; /open-basedir;open_basedir =; This directive allows you to disable certain functions for security reasons.; It receives a comma-delimited list of function names. This directive is; *NOT* affected by whether Safe Mode is turned On or Off.; /disable-functionsdisable_functions =; This directive allows you to disable certain classes for security reasons.; It receives a comma-delimited list of class names. This directive is; *NOT* affected by whether Safe Mode is turned On or Off.; /disable-classesdisable_classes =; Colors for Syntax Highlighting mode. Anything that's acceptable in; <span style="color: ???????"> would work.; /syntax-highlighting;highlight.string = #DD0000;ment = #FF9900;highlight.keyword = #007700;highlight.bg= #FFFFFF;highlight.default = #0000BB;highlight.html = #000000; If enabled, the request will be allowed to complete even if the user aborts; the request. Consider enabling it if executing long requests, which may end up; being interrupted by the user or a browser timing out. PHP's default behavior; is to disable this feature.; /ignore-user-abort;ignore_user_abort = On; Determines the size of the realpath cache to be used by PHP. This value should; be increased on systems where PHP opens many files to reflect the quantity of; the file operations performed.; /realpath-cache-size;realpath_cache_size = 16k; Duration of time, in seconds for which to cache realpath information for a given; file or directory. For systems with rarely changing files, consider increasing this; value.; /realpath-cache-ttl;realpath_cache_ttl = 120; Enables or disables the circular reference collector.; /zend.enable-gczend.enable_gc = On;;;;;;;;;;;;;;;;;; Miscellaneous ;;;;;;;;;;;;;;;;;;; Decides whether PHP may expose the fact that it is installed on the server; (e.g. by adding its signature to the Web server header). It is no security; threat in any way, but it makes it possible to determine whether you use PHP; on your server or not.; /expose-phpexpose_php = On;;;;;;;;;;;;;;;;;;;; Resource Limits ;;;;;;;;;;;;;;;;;;;;; Maximum execution time of each script, in seconds; /max-execution-time; Note: This directive is hardcoded to 0 for the CLI SAPImax_execution_time =30; Maximum amount of time each script may spend parsing request data. It's a good; idea to limit this time on productions servers in order to eliminate unexpectedly; long running scripts.; Note: This directive is hardcoded to -1 for the CLI SAPI; Default Value: -1 (Unlimited); Development Value: 60 (60 seconds); Production Value: 60 (60 seconds); /max-input-timemax_input_time = 60; Maximum input variable nesting level; /max-input-nesting-level;max_input_nesting_level = 64; How many GET/POST/COOKIE input variables may be accepted; max_input_vars = 1000; Maximum amount of memory a script may consume (128MB); /memory-limitmemory_limit = 128M;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Error handling and logging ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; This directive informs PHP of which errors, warnings and notices you would like; it to take action for. The recommended way of setting values for this; directive is through the use of the error level constants and bitwise; operators. The error level constants are below here for convenience as well as; some common settings and their meanings.; By default, PHP is set to take action on all errors, notices and warnings EXCEPT; those related to E_NOTICE and E_STRICT, which together cover best practices and; recommended coding standards in PHP. For performance reasons, this is the; recommend error reporting setting. Your production server shouldn't be wasting; resources complaining about best practices and coding standards. That's what; development servers and development settings are for.; Note: The php.ini-development file has this setting as E_ALL | E_STRICT. This; means it pretty much reports everything which is exactly what you want during; development and early testing.;; Error Level Constants:; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0); E_ERROR - fatal run-time errors; E_RECOVERABLE_ERROR - almost fatal run-time errors; E_WARNING - run-time warnings (non-fatal errors); E_PARSE - compile-time parse errors; E_NOTICE- run-time notices (these are warnings which often result; from a bug in your code, but it's possible that it was; intentional (e.g., using an uninitialized variable and; relying on the fact it's automatically initialized to an; empty string); E_STRICT- run-time notices, enable to have PHP suggest changes; to your code which will ensure the best interoperability; and forward compatibility of your code; E_CORE_ERROR- fatal errors that occur during PHP's initial startup; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's; initial startup; E_COMPILE_ERROR - fatal compile-time errors; E_COMPILE_WARNING - compile-time warnings (non-fatal errors); E_USER_ERROR- user-generated error message; E_USER_WARNING - user-generated warning message; E_USER_NOTICE- user-generated notice message; E_DEPRECATED- warn about code that will not work in future versions; of PHP; E_USER_DEPRECATED - user-generated deprecation warnings;; Common Values:; E_ALL & ~E_NOTICE (Show all errors, except for notices and coding standards warnings.); E_ALL & ~E_NOTICE | E_STRICT (Show all errors, except for notices); E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors); E_ALL | E_STRICT (Show all errors, warnings and notices including coding standards.); Default Value: E_ALL & ~E_NOTICE; Development Value: E_ALL | E_STRICT; Production Value: E_ALL & ~E_DEPRECATED; /error-reportingerror_reporting = E_ALL | E_STRICT; This directive controls whether or not and where PHP will output errors,; notices and warnings too. Error output is very useful during development, but; it could be very dangerous in production environments. Depending on the code; which is triggering the error, sensitive information could potentially leak; out of your application such as database usernames and passwords or worse.; It's recommended that errors be logged on production servers rather than; having the errors sent to STDOUT.; Possible Values:; Off = Do not display any errors; stderr = Display errors to STDERR (affects only CGI/CLI binaries!); On or stdout = Display errors to STDOUT; Default Value: On; Development Value: On; Production Value: Off; /display-errorsdisplay_errors =On; The display of errors which occur during PHP's startup sequence are handled; separately from display_errors. PHP's default behavior is to suppress those; errors from clients. Turning the display of startup errors on can be useful in; debugging configuration problems. But, it's strongly recommended that you; leave this setting off on production servers.; Default Value: Off; Development Value: On; Production Value: Off; /display-startup-errorsdisplay_startup_errors = On; Besides displaying errors, PHP can also log errors to locations such as a; server-specific log, STDERR, or a location specified by the error_log; directive found below. While errors should not be displayed on productions; servers they should still be monitored and logging is a great way to do that.; Default Value: Off; Development Value: On; Production Value: On; /log-errorslog_errors = On; Set maximum length of log_errors. In error_log information about the source is; added. The default is 1024 and 0 allows to not apply any maximum length at all.; /log-errors-max-lenlog_errors_max_len = 1024; Do not log repeated messages. Repeated errors must occur in same file on same; line unless ignore_repeated_source is set true.; /ignore-repeated-errorsignore_repeated_errors = Off; Ignore source of message when ignoring repeated messages. When this setting; is On you will not log errors with repeated messages from different files or; source lines.; /ignore-repeated-sourceignore_repeated_source = Off; If this parameter is set to Off, then memory leaks will not be shown (on; stdout or in the log). This has only effect in a debug compile, and if; error reporting includes E_WARNING in the allowed list; /report-memleaksreport_memleaks = On; This setting is on by default.;report_zend_debug = 0; Store the last error/warning message in $php_errormsg (boolean). Setting this value; to On can assist in debugging and is appropriate for development servers. It should; however be disabled on production servers.; Default Value: Off; Development Value: On; Production Value: Off; /track-errorstrack_errors = On; Turn off normal error reporting and emit XML-RPC error XML; /xmlrpc-errors;xmlrpc_errors = 0; An XML-RPC faultCode;xmlrpc_error_number = 0; When PHP displays or logs an error, it has the capability of inserting html; links to documentation related to that error. This directive controls whether; those HTML links appear in error messages or not. For performance and security; reasons, it's recommended you disable this on production servers.; Note: This directive is hardcoded to Off for the CLI SAPI; Default Value: On; Development Value: On; Production value: Off; /html-errorshtml_errors = On; If html_errors is set On PHP produces clickable error messages that direct; to a page describing the error or function causing the error in detail.; You can download a copy of the PHP manual from /docs; and change docref_root to the base URL of your local copy including the; leading '/'. You must also specify the file extension being used including; the dot. PHP's default behavior is to leave these settings empty.; Note: Never use this feature for production boxes.; /docref-root; Examples;docref_root = "/phpmanual/"; /docref-ext;docref_ext = .html; String to output before an error message. PHP's default behavior is to leave; this setting blank.; /error-prepend-string; Example:;error_prepend_string = "<span style='color: #ff0000'>"; String to output after an error message. PHP's default behavior is to leave; this setting blank.; /error-append-string; Example:;error_append_string = "</span>"; Log errors to specified file. PHP's default behavior is to leave this value; empty.; /error-log; Example:;error_log = php_errors.log; Log errors to syslog (Event Log on NT, not valid in Windows 95).;error_log = syslog;windows.show_crt_warning; Default value: 0; Development value: 0; Production value: 0;;;;;;;;;;;;;;;;;; Data Handling ;;;;;;;;;;;;;;;;;;; The separator used in PHP generated URLs to separate arguments.; PHP's default setting is "&".; /arg-separator.output; Example:;arg_separator.output = "&"; List of separator(s) used by PHP to parse input URLs into variables.; PHP's default setting is "&".; NOTE: Every character in this directive is considered as separator!; /arg-separator.input; Example:;arg_separator.input = ";&"; This directive determines which super global arrays are registered when PHP; starts up. If the register_globals directive is enabled, it also determines; what order variables are populated into the global space. G,P,C,E & S are; abbreviations for the following respective super globals: GET, POST, COOKIE,; ENV and SERVER. There is a performance penalty paid for the registration of; these arrays and because ENV is not as commonly used as the others, ENV is; is not recommended on productions servers. You can still get access to; the environment variables through getenv() should you need to.; Default Value: "EGPCS"; Development Value: "GPCS"; Production Value: "GPCS";; /variables-ordervariables_order = "GPCS"; This directive determines which super global data (G,P,C,E & S) should; be registered into the super global array REQUEST. If so, it also determines; the order in which that data is registered. The values for this directive are; specified in the same manner as the variables_order directive, EXCEPT one.; Leaving this value empty will cause PHP to use the value set in the; variables_order directive. It does not mean it will leave the super globals; array REQUEST empty.; Default Value: None; Development Value: "GP"; Production Value: "GP"; /request-orderrequest_order = "CGP"; Whether or not to register the EGPCS variables as global variables. You may; want to turn this off if you don't want to clutter your scripts' global scope; with user data.; You should do your best to write your scripts so that they do not require; register_globals to be on; Using form variables as globals can easily lead; to possible security problems, if the code is not very well thought of.; /register-globalsregister_globals =Off; Determines whether the deprecated long $HTTP_*_VARS type predefined variables; are registered by PHP or not. As they are deprecated, we obviously don't; recommend you use them. They are on by default for compatibility reasons but; they are not recommended on production servers.; Default Value: On; Development Value: Off; Production Value: Off; /register-long-arraysregister_long_arrays = Off; This directive determines whether PHP registers $argv & $argc each time it; runs. $argv contains an array of all the arguments passed to PHP when a script; is invoked. $argc contains an integer representing the number of arguments; that were passed when the script was invoked. These arrays are extremely; useful when running scripts from the command line. When this directive is; enabled, registering these variables consumes CPU cycles and memory each time; a script is executed. For performance reasons, this feature should be disabled; on production servers.; Note: This directive is hardcoded to On for the CLI SAPI; Default Value: On; Development Value: Off; Production Value: Off; /register-argc-argvregister_argc_argv = Off; When enabled, the SERVER and ENV variables are created when they're first; used (Just In Time) instead of when the script starts. If these variables; are not used within a script, having this directive on will result in a; performance gain. The PHP directives register_globals, register_long_arrays,; and register_argc_argv must be disabled for this directive to have any affect.; /auto-globals-jitauto_globals_jit = On; Maximum size of POST data that PHP will accept.; /post-max-sizepost_max_size =2M; Magic quotes are a preprocessing feature of PHP where PHP will attempt to; escape any character sequences in GET, POST, COOKIE and ENV data which might; otherwise corrupt data being placed in resources such as databases before; making that data available to you. Because of character encoding issues and; non-standard SQL implementations across many databases, it's not currently; possible for this feature to be 100% accurate. PHP's default behavior is to; enable the feature. We strongly recommend you use the escaping mechanisms; designed specifically for the database your using instead of relying on this; feature. Also note, this feature has been deprecated as of PHP 5.3.0 and is; removed in PHP 5.4.; Default Value: On; Development Value: Off; Production Value: Off; /magic-quotes-gpcmagic_quotes_gpc = Off; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.; /magic-quotes-runtimemagic_quotes_runtime = Off; Use Sybase-style magic quotes (escape ' with '' instead of \').; /magic-quotes-sybasemagic_quotes_sybase = Off; Automatically add files before PHP document.; /auto-prepend-fileauto_prepend_file =; Automatically add files after PHP document.; /auto-append-fileauto_append_file =; By default, PHP will output a character encoding using; the Content-type: header. To disable sending of the charset, simply; set it to be empty.;; PHP's built-in default is text/html; /default-mimetypedefault_mimetype = "text/html"; PHP's default character set is set to empty.; /default-charset;default_charset = "iso-8859-1"; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is; to disable this feature.; /always-populate-raw-post-data;always_populate_raw_post_data = On;;;;;;;;;;;;;;;;;;;;;;;;;; Paths and Directories ;;;;;;;;;;;;;;;;;;;;;;;;;;; UNIX: "/path1:/path2";include_path = ".:/php/includes";; Windows: "\path1;\path2";include_path = ".;c:\php\includes";; PHP's default setting for include_path is ".;/path/to/php/pear"; /include-path; The root of the PHP pages, used only if nonempty.; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root; if you are running php as a CGI under any web server (other than IIS); see documentation for security issues. The alternate is to use the; cgi.force_redirect configuration below; /doc-rootdoc_root =; The directory under which PHP opens the script using /~username used only; if nonempty.; /user-diruser_dir =; Directory in which the loadable extensions (modules) reside.; /extension-dir; extension_dir = "./"; On windows:extension_dir ="D:\phpStudy\php\php-5.3.29-nts\ext"; Whether or not to enable the dl() function. The dl() function does NOT work; properly in multithreaded servers, such as IIS or Zeus, and is automatically; disabled on them.; /enable-dlenable_dl = Off; cgi.force_redirect is necessary to provide security running PHP as a CGI under; most web servers. Left undefined, PHP turns this on by default. You can; turn it off here AT YOUR OWN RISK; **You CAN safely turn this off for IIS, in fact, you MUST.**; /cgi.force-redirect;cgi.force_redirect = 1; if cgi.nph is enabled it will force cgi to always sent Status: 200 with; every request. PHP's default behavior is to disable this feature.;cgi.nph = 1; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape; (iPlanet) web servers, you MAY need to set an environment variable name that PHP; will look for to know it is OK to continue execution. Setting this variable MAY; cause security issues, KNOW WHAT YOU ARE DOING FIRST.; /cgi.redirect-status-env;cgi.redirect_status_env = ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting; of zero causes PHP to behave as before. Default is 1. You should fix your scripts; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.; /cgi.fix-pathinfo;cgi.fix_pathinfo=1; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate; security tokens of the calling client. This allows IIS to define the; security context that the request runs under. mod_fastcgi under Apache; does not currently support this feature (03/17/2002); Set to 1 if running under IIS. Default is zero.; /fastcgi.impersonate;fastcgi.impersonate = 1; Disable logging through FastCGI connection. PHP's default behavior is to enable; this feature.;fastcgi.logging = 0; cgi.rfc2616_headers configuration option tells PHP what type of headers to; use when sending HTTP response code. If it's set 0 PHP sends Status: header that; is supported by Apache. When this option is set to 1 PHP will send; RFC2616 compliant header.; Default is zero.; /cgi.rfc2616-headers;cgi.rfc2616_headers = 0cgi.force_redirect = 0fastcgi.impersonate = 1;;;;;;;;;;;;;;;;; File Uploads ;;;;;;;;;;;;;;;;;; Whether to allow HTTP file uploads.; /file-uploadsfile_uploads = On; Temporary directory for HTTP uploaded files (will use system default if not; specified).; /upload-tmp-dir;upload_tmp_dir =; Maximum allowed size for uploaded files.; /upload-max-filesizeupload_max_filesize =2M; Maximum number of files that can be uploaded via a single requestmax_file_uploads = 20;;;;;;;;;;;;;;;;;;; Fopen wrappers ;;;;;;;;;;;;;;;;;;;; Whether to allow the treatment of URLs (like http:// or ftp://) as files.; /allow-url-fopenallow_url_fopen = On; Whether to allow include/require to open URLs (like http:// or ftp://) as files.; /allow-url-includeallow_url_include = Off; Define the anonymous ftp password (your email address). PHP's default setting; for this is empty.; /from;from="john@"; Define the User-Agent string. PHP's default setting for this is empty.; /user-agent;user_agent="PHP"; Default timeout for socket based streams (seconds); /default-socket-timeoutdefault_socket_timeout = 60; If your scripts have to deal with files from Macintosh systems,; or you are running on a Mac and need to deal with files from; unix or win32 systems, setting this flag will cause PHP to; automatically detect the EOL character in those files so that; fgets() and file() will work regardless of the source of the file.; /auto-detect-line-endings;auto_detect_line_endings = Off;;;;;;;;;;;;;;;;;;;;;;; Dynamic Extensions ;;;;;;;;;;;;;;;;;;;;;;;; If you wish to have an extension loaded automatically, use the following; syntax:;; extension=modulename.extension;; For example, on Windows:;; extension=msql.dll;; ... or under UNIX:;; extension=msql.so;; ... or with a path:;; extension=/path/to/extension/msql.so;; If you only provide the name of the extension, PHP will look for it in its; default extension directory.;; Windows Extensions; Note that ODBC support is built in, so no dll is needed for it.; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5); extension folders as well as the separate PECL DLL download (PHP 5).; Be sure to appropriately set the extension_dir directive.;extension=php_bz2.dllextension=php_curl.dll;extension=php_fileinfo.dllextension=php_gd2.dll;extension=php_gettext.dll;extension=php_gmp.dll;extension=php_intl.dll;extension=php_imap.dll;extension=php_interbase.dll;extension=php_ldap.dllextension=php_mbstring.dll;extension=php_exif.dll; Must be after mbstring as it depends on itextension=php_mysql.dllextension=php_mysqli.dll;extension=php_oci8.dll; Use with Oracle 10gR2 Instant Client;extension=php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client;extension=php_openssl.dll;extension=php_pdo_firebird.dll;extension=php_pdo_mssql.dllextension=php_pdo_mysql.dll;extension=php_pdo_oci.dllextension=php_pdo_odbc.dll;extension=php_pdo_pgsql.dllextension=php_pdo_sqlite.dll;extension=php_pgsql.dll;extension=php_pspell.dll;extension=php_shmop.dll;extension=php_mongo.dlextension=php_sqlsrv.dllextension=php_pdo_sqlsrv.dll;extension=php_ibm_db2.dll; The MIBS data available in the PHP distribution must be installed. ; See /manual/en/snmp.installation.php ;extension=php_snmp.dll;extension=php_soap.dllextension=php_sockets.dllextension=php_sqlite.dllextension=php_sqlite3.dll;extension=php_sybase_ct.dll;extension=php_tidy.dllextension=php_xmlrpc.dllextension=php_xsl.dll;extension=wincache.dll;extension=memcache.dll;杨吉自己加上去的extension=php_sqlsrv_53_nts.dllextension=php_pdo_sqlsrv_53_nts.dllextension=php_mssql.dllextension=php_dblib.dll;;;;;;;;;;;;;;;;;;;; Module Settings ;;;;;;;;;;;;;;;;;;;;[Date]; Defines the default timezone used by the date functions; /date.timezonedate.timezone =PRC; /date.default-latitude;date.default_latitude = 31.7667; /date.default-longitude;date.default_longitude = 35.2333; /date.sunrise-zenith;date.sunrise_zenith = 90.583333; /date.sunset-zenith;date.sunset_zenith = 90.583333[filter]; /filter.default;filter.default = unsafe_raw; /filter.default-flags;filter.default_flags =[iconv];iconv.input_encoding = ISO-8859-1;iconv.internal_encoding = ISO-8859-1;iconv.output_encoding = ISO-8859-1[intl];intl.default_locale =; This directive allows you to produce PHP errors when some error; happens within intl functions. The value is the level of the error produced.; Default is 0, which does not produce any errors.;intl.error_level = E_WARNING[sqlite]; /sqlite.assoc-case;sqlite.assoc_case = 0[sqlite3];sqlite3.extension_dir =[Pcre];PCRE library backtracking limit.; /pcre.backtrack-limit;pcre.backtrack_limit=100000;PCRE library recursion limit.;Please note that if you set this value to a high number you may consume all;the available process stack and eventually crash PHP (due to reaching the;stack size limit imposed by the Operating System).; /pcre.recursion-limit;pcre.recursion_limit=100000[Pdo]; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off"; /pdo-odbc.connection-pooling;pdo_odbc.connection_pooling=strict;pdo_odbc.db2_instance_name[Pdo_mysql]; If mysqlnd is used: Number of cache slots for the internal result set cache; /pdo_mysql.cache_sizepdo_mysql.cache_size = 2000; Default socket name for local MySQL connects. If empty, uses the built-in; MySQL defaults.; /pdo_mysql.default-socketpdo_mysql.default_socket=[Phar]; /phar.readonly;phar.readonly = On; /phar.require-hash;phar.require_hash = On;phar.cache_list =[Syslog]; Whether or not to define the various syslog variables (e.g. $LOG_PID,; $LOG_CRON, etc.). Turning it off is a good idea performance-wise. In; runtime, you can define these variables by calling define_syslog_variables().; /define-syslog-variablesdefine_syslog_variables = Off[mail function]; For Win32 only.; /smtpSMTP = localhost; /smtp-portsmtp_port = 25; For Win32 only.; /sendmail-from;sendmail_from = me@; For Unix only. You may supply arguments as well (default: "sendmail -t -i").; /sendmail-pathsendmail_path =; Force the addition of the specified parameters to be passed as extra parameters; to the sendmail binary. These parameters will always replace the value of; the 5th parameter to mail(), even in safe mode.;mail.force_extra_parameters =; Add X-PHP-Originating-Script: that will include uid of the script followed by the filenamemail.add_x_header = On; The path to a log file that will log all mail() calls. Log entries include; the full path of the script, line number, To address and headers.;mail.log =[SQL]; /sql.safe-modesql.safe_mode = Off[ODBC]; /odbc.default-db;odbc.default_db = Not yet implemented; /odbc.default-user;odbc.default_user = Not yet implemented; /odbc.default-pw;odbc.default_pw = Not yet implemented; Controls the ODBC cursor model.; Default: SQL_CURSOR_STATIC (default).;odbc.default_cursortype; Allow or prevent persistent links.; /odbc.allow-persistentodbc.allow_persistent = On; Check that a connection is still valid before reuse.; /odbc.check-persistentodbc.check_persistent = On; Maximum number of persistent links. -1 means no limit.; /odbc.max-persistentodbc.max_persistent = -1; Maximum number of links (persistent + non-persistent). -1 means no limit.; /odbc.max-linksodbc.max_links = -1; Handling of LONG fields. Returns number of bytes to variables. 0 means; passthru.; /odbc.defaultlrlodbc.defaultlrl = 4096; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char.; See the documentation on odbc_binmode and odbc_longreadlen for an explanation; of odbc.defaultlrl and odbc.defaultbinmode; /odbc.defaultbinmodeodbc.defaultbinmode = 1;birdstep.max_links = -1[Interbase]; Allow or prevent persistent links.ibase.allow_persistent = 1; Maximum number of persistent links. -1 means no limit.ibase.max_persistent = -1; Maximum number of links (persistent + non-persistent). -1 means no limit.ibase.max_links = -1; Default database name for ibase_connect().;ibase.default_db =; Default username for ibase_connect().;ibase.default_user =; Default password for ibase_connect().;ibase.default_password =; Default charset for ibase_connect().;ibase.default_charset =; Default timestamp format.ibase.timestampformat = "%Y-%m-%d %H:%M:%S"; Default date format.ibase.dateformat = "%Y-%m-%d"; Default time format.ibase.timeformat = "%H:%M:%S"[MySQL]; Allow accessing, from PHP's perspective, local files with LOAD DATA statements; /mysql.allow_local_infilemysql.allow_local_infile = On; Allow or prevent persistent links.; /mysql.allow-persistentmysql.allow_persistent = On; If mysqlnd is used: Number of cache slots for the internal result set cache; /mysql.cache_sizemysql.cache_size = 2000; Maximum number of persistent links. -1 means no limit.; /mysql.max-persistentmysql.max_persistent = -1; Maximum number of links (persistent + non-persistent). -1 means no limit.; /mysql.max-linksmysql.max_links = -1; Default port number for mysql_connect(). If unset, mysql_connect() will use; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the; compile-time value defined MYSQL_PORT (in that order). Win32 will only look; at MYSQL_PORT.; /mysql.default-portmysql.default_port =; Default socket name for local MySQL connects. If empty, uses the built-in; MySQL defaults.; /mysql.default-socketmysql.default_socket =; Default host for mysql_connect() (doesn't apply in safe mode).; /mysql.default-hostmysql.default_host =; Default user for mysql_connect() (doesn't apply in safe mode).; /mysql.default-usermysql.default_user =; Default password for mysql_connect() (doesn't apply in safe mode).; Note that this is generally a *bad* idea to store passwords in this file.; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password"); and reveal this password! And of course, any users with read access to this; file will be able to reveal the password as well.; /mysql.default-passwordmysql.default_password =; Maximum time (in seconds) for connect timeout. -1 means no limit; /mysql.connect-timeoutmysql.connect_timeout = 60; Trace mode. When trace_mode is active (=On), warnings for table/index scans and; SQL-Errors will be displayed.; /mysql.trace-modemysql.trace_mode = Off[MySQLi]; Maximum number of persistent links. -1 means no limit.; /mysqli.max-persistentmysqli.max_persistent = -1; Allow accessing, from PHP's perspective, local files with LOAD DATA statements; /mysqli.allow_local_infile;mysqli.allow_local_infile = On; Allow or prevent persistent links.; /mysqli.allow-persistentmysqli.allow_persistent = On; Maximum number of links. -1 means no limit.; /mysqli.max-linksmysqli.max_links = -1; If mysqlnd is used: Number of cache slots for the internal result set cache; /mysqli.cache_sizemysqli.cache_size = 2000; Default port number for mysqli_connect(). If unset, mysqli_connect() will use; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the; compile-time value defined MYSQL_PORT (in that order). Win32 will only look; at MYSQL_PORT.; /mysqli.default-portmysqli.default_port = 3306; Default socket name for local MySQL connects. If empty, uses the built-in; MySQL defaults.; /mysqli.default-socketmysqli.default_socket =; Default host for mysql_connect() (doesn't apply in safe mode).; /mysqli.default-hostmysqli.default_host =; Default user for mysql_connect() (doesn't apply in safe mode).; /mysqli.default-usermysqli.default_user =; Default password for mysqli_connect() (doesn't apply in safe mode).; Note that this is generally a *bad* idea to store passwords in this file.; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw"); and reveal this password! And of course, any users with read access to this; file will be able to reveal the password as well.; /mysqli.default-pwmysqli.default_pw =; Allow or prevent reconnectmysqli.reconnect = Off[mysqlnd]; Enable / Disable collection of general statistics by mysqlnd which can be; used to tune and monitor MySQL operations.; /mysqlnd.collect_statisticsmysqlnd.collect_statistics = On; Enable / Disable collection of memory usage statistics by mysqlnd which can be; used to tune and monitor MySQL operations.; /mysqlnd.collect_memory_statisticsmysqlnd.collect_memory_statistics = On; Size of a pre-allocated buffer used when sending commands to MySQL in bytes.; /_cmd_buffer_size;_cmd_buffer_size = 2048; Size of a pre-allocated buffer used for reading data sent by the server in; bytes.; /_read_buffer_size;_read_buffer_size = 32768[OCI8]; Connection: Enables privileged connections using external; credentials (OCI_SYSOPER, OCI_SYSDBA); /oci8.privileged-connect;oci8.privileged_connect = Off; Connection: The maximum number of persistent OCI8 connections per; process. Using -1 means no limit.; /oci8.max-persistent;oci8.max_persistent = -1; Connection: The maximum number of seconds a process is allowed to; maintain an idle persistent connection. Using -1 means idle; persistent connections will be maintained forever.; /oci8.persistent-timeout;oci8.persistent_timeout = -1; Connection: The number of seconds that must pass before issuing a; ping during oci_pconnect() to check the connection validity. When; set to 0, each oci_pconnect() will cause a ping. Using -1 disables; pings completely.; /oci8.ping-interval;oci8.ping_interval = 60; Connection: Set this to a user chosen connection class to be used; for all pooled server requests with Oracle 11g Database Resident; Connection Pooling (DRCP). To use DRCP, this value should be set to; the same string for all web servers running the same application,; the database pool must be configured, and the connection string must; specify to use a pooled server.;oci8.connection_class =; High Availability: Using On lets PHP receive Fast Application; Notification (FAN) events generated when a database node fails. The; database must also be configured to post FAN events.;oci8.events = Off; Tuning: This option enables statement caching, and specifies how; many statements to cache. Using 0 disables statement caching.; /oci8.statement-cache-size;oci8.statement_cache_size = 20; Tuning: Enables statement prefetching and sets the default number of; rows that will be fetched automatically after statement execution.; /oci8.default-prefetch;oci8.default_prefetch = 100; Compatibility. Using On means oci_close() will not close; oci_connect() and oci_new_connect() connections.; /oci8.old-oci-close-semantics;oci8.old_oci_close_semantics = Off[PostgreSQL]; Allow or prevent persistent links.; /pgsql.allow-persistentpgsql.allow_persistent = On; Detect broken persistent links always with pg_pconnect().; Auto reset feature requires a little overheads.; /pgsql.auto-reset-persistentpgsql.auto_reset_persistent = Off; Maximum number of persistent links. -1 means no limit.; /pgsql.max-persistentpgsql.max_persistent = -1; Maximum number of links (persistent+non persistent). -1 means no limit.; /pgsql.max-linkspgsql.max_links = -1; Ignore PostgreSQL backends Notice message or not.; Notice message logging require a little overheads.; /pgsql.ignore-noticepgsql.ignore_notice = 0; Log PostgreSQL backends Notice message or not.; Unless pgsql.ignore_notice=0, module cannot log notice message.; /pgsql.log-noticepgsql.log_notice = 0[Sybase-CT]; Allow or prevent persistent links.; /sybct.allow-persistentsybct.allow_persistent = On; Maximum number of persistent links. -1 means no limit.; /sybct.max-persistentsybct.max_persistent = -1; Maximum number of links (persistent + non-persistent). -1 means no limit.; /sybct.max-linkssybct.max_links = -1; Minimum server message severity to display.; /sybct.min-server-severitysybct.min_server_severity = 10; Minimum client message severity to display.; /sybct.min-client-severitysybct.min_client_severity = 10; Set per-context timeout; /sybct.timeout;sybct.timeout=;sybct.packet_size; The maximum time in seconds to wait for a connection attempt to succeed before returning failure.; Default: one minute;sybct.login_timeout=; The name of the host you claim to be connecting from, for display by sp_who.; Default: none;sybct.hostname=; Allows you to define how often deadlocks are to be retried. -1 means "forever".; Default: 0;sybct.deadlock_retry_count=[bcmath]; Number of decimal digits for all bcmath functions.; /bcmath.scalebcmath.scale = 0[browscap]; /browscap;browscap = extra/browscap.ini[Session]; Handler used to store/retrieve data.; /session.save-handlersession.save_handler = files; Argument passed to save_handler. In the case of files, this is the path; where data files are stored. Note: Windows users have to change this; variable in order to use PHP's session functions.;; The path can be defined as:;;session.save_path = "N;/path";; where N is an integer. Instead of storing all the session files in; /path, what this will do is use subdirectories N-levels deep, and; store the session data in those directories. This is useful if you; or your OS have problems with lots of files in one directory, and is; a more efficient layout for servers that handle lots of sessions.;; NOTE 1: PHP will not create this directory structure automatically.; You can use the script in the ext/session dir for that purpose.; NOTE 2: See the section on garbage collection below if you choose to; use subdirectories for session storage;; The file storage module creates files using mode 600 by default.; You can change that by using;;session.save_path = "N;MODE;/path";; where MODE is the octal representation of the mode. Note that this; does not overwrite the process's umask.; /session.save-path;session.save_path = "/tmp"; Whether to use cookies.; /session.use-cookiessession.use_cookies = 1; /session.cookie-secure;session.cookie_secure =; This option forces PHP to fetch and use a cookie for storing and maintaining; the session id. We encourage this operation as it's very helpful in combating; session hijacking when not specifying and managing your own session id. It is; not the end all be all of session hijacking defense, but it's a good start.; /session.use-only-cookiessession.use_only_cookies = 1; Name of the session (used as cookie name).; /session.namesession.name = PHPSESSID; Initialize session on request startup.; /session.auto-startsession.auto_start = 0; Lifetime in seconds of cookie or, if 0, until browser is restarted.; /session.cookie-lifetimesession.cookie_lifetime = 0; The path for which the cookie is valid.; /session.cookie-pathsession.cookie_path = /; The domain for which the cookie is valid.; /session.cookie-domainsession.cookie_domain =; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript.; /session.cookie-httponlysession.cookie_httponly =; Handler used to serialize data. php is the standard serializer of PHP.; /session.serialize-handlersession.serialize_handler = php; Defines the probability that the 'garbage collection' process is started; on every session initialization. The probability is calculated by using; gc_probability/gc_divisor. Where session.gc_probability is the numerator; and gc_divisor is the denominator in the equation. Setting this value to 1; when the session.gc_divisor value is 100 will give you approximately a 1% chance; the gc will run on any give request.; Default Value: 1; Development Value: 1; Production Value: 1; /session.gc-probabilitysession.gc_probability = 1; Defines the probability that the 'garbage collection' process is started on every; session initialization. The probability is calculated by using the following equation:; gc_probability/gc_divisor. Where session.gc_probability is the numerator and; session.gc_divisor is the denominator in the equation. Setting this value to 1; when the session.gc_divisor value is 100 will give you approximately a 1% chance; the gc will run on any give request. Increasing this value to 1000 will give you; a 0.1% chance the gc will run on any give request. For high volume production servers,; this is a more efficient approach.; Default Value: 100; Development Value: 1000; Production Value: 1000; /session.gc-divisorsession.gc_divisor = 1000; After this number of seconds, stored data will be seen as 'garbage' and; cleaned up by the garbage collection process.; /session.gc-maxlifetimesession.gc_maxlifetime = 1440; NOTE: If you are using the subdirectory option for storing session files; (see session.save_path above), then garbage collection does *not*; happen automatically. You will need to do your own garbage; collection through a shell script, cron entry, or some other method.; For example, the following script would is the equivalent of; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):;find /path/to/sessions -cmin +24 | xargs rm; PHP 4.2 and less have an undocumented feature/bug that allows you to; to initialize a session variable in the global scope, even when register_globals; is disabled. PHP 4.3 and later will warn you, if this feature is used.; You can disable the feature and the warning separately. At this time,; the warning is only displayed, if bug_compat_42 is enabled. This feature; introduces some serious security problems if not handled correctly. It's; recommended that you do not use this feature on production servers. But you; should enable this on development servers and enable the warning as well. If you; do not enable the feature on development servers, you won't be warned when it's; used and debugging errors caused by this can be difficult to track down.; Default Value: On; Development Value: On; Production Value: Off; /session.bug-compat-42session.bug_compat_42 = On; This setting controls whether or not you are warned by PHP when initializing a; session value into the global space. session.bug_compat_42 must be enabled before; these warnings can be issued by PHP. See the directive above for more information.; Default Value: On; Development Value: On; Production Value: Off; /session.bug-compat-warnsession.bug_compat_warn = On; Check HTTP Referer to invalidate externally stored URLs containing ids.; HTTP_REFERER has to contain this substring for the session to be; considered as valid.; /session.referer-checksession.referer_check =; How many bytes to read from the file.; /session.entropy-lengthsession.entropy_length = 0; Specified here to create the session id.; /session.entropy-file; On systems that don't have /dev/urandom /dev/arandom can be used; On windows, setting the entropy_length setting will activate the ; Windows random source (using the CryptoAPI);session.entropy_file = /dev/urandom; Set to {nocache,private,public,} to determine HTTP caching aspects; or leave this empty to avoid sending anti-caching headers.; /session.cache-limitersession.cache_limiter = nocache; Document expires after n minutes.; /session.cache-expiresession.cache_expire = 180; trans sid support is disabled by default.; Use of trans sid may risk your users security.; Use this option with caution.; - User may send URL contains active session ID; to other person via. email/irc/etc.; - URL that contains active session ID may be stored; in publicly accessible computer.; - User may access your site with the same session ID; always using URL stored in browser's history or bookmarks.; /session.use-trans-sidsession.use_trans_sid = 0; Select a hash function for use in generating session ids.; Possible Values; 0 (MD5 128 bits); 1 (SHA-1 160 bits); This option may also be set to the name of any hash function supported by; the hash extension. A list of available hashes is returned by the hash_algos(); function.; /session.hash-functionsession.hash_function = 0; Define how many bits are stored in each character when converting; the binary hash data to something readable.; Possible values:; 4 (4 bits: 0-9, a-f); 5 (5 bits: 0-9, a-v); 6 (6 bits: 0-9, a-z, A-Z, "-", ","); Default Value: 4; Development Value: 5; Production Value: 5; /session.hash-bits-per-charactersession.hash_bits_per_character = 5; The URL rewriter will look for URLs in a defined set of HTML tags.; form/fieldset are special; if you include them here, the rewriter will; add a hidden <input> field with the info which is otherwise appended; to URLs. If you want XHTML conformity, remove the form entry.; Note that all valid entries require a "=", even if no value follows.; Default Value: "a=href,area=href,frame=src,form=,fieldset="; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry"; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry"; /url-rewriter.tagsurl_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"session.save_path="D:\phpStudy\tmp\tmp"[MSSQL]; Allow or prevent persistent links.mssql.allow_persistent = On; Maximum number of persistent links. -1 means no limit.mssql.max_persistent = -1; Maximum number of links (persistent+non persistent). -1 means no limit.mssql.max_links = -1; Minimum error severity to display.mssql.min_error_severity = 10; Minimum message severity to display.mssql.min_message_severity = 10; Compatibility mode with old versions of PHP 3.patability_mode = Off; Connect timeout;mssql.connect_timeout = 5; Query timeout;mssql.timeout = 60; Valid range 0 - 2147483647. Default = 4096.;mssql.textlimit = 4096; Valid range 0 - 2147483647. Default = 4096.;mssql.textsize = 4096; Limits the number of records in each batch. 0 = all records in one batch.;mssql.batchsize = 0; Specify how datetime and datetim4 columns are returned; On => Returns data converted to SQL server settings; Off => Returns values as YYYY-MM-DD hh:mm:ss;mssql.datetimeconvert = On; Use NT authentication when connecting to the servermssql.secure_connection = on; Specify max number of processes. -1 = library default; msdlib defaults to 25; FreeTDS defaults to 4096;mssql.max_procs = -1; Specify client character set.; If empty or not set the client charset from freetds.conf is used; This is only used when compiled with FreeTDS;mssql.charset = "ISO-8859-1"[Assertion]; Assert(expr); active by default.; /assert.active;assert.active = On; Issue a PHP warning for each failed assertion.; /assert.warning;assert.warning = On; Don't bail out by default.; /assert.bail;assert.bail = Off; User-function to be called if an assertion fails.; /assert.callback;assert.callback = 0; Eval the expression with current error_reporting(). Set to true if you want; error_reporting(0) around the eval().; /assert.quiet-eval;assert.quiet_eval = 0[COM]; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs; /com.typelib-file;com.typelib_file =; allow Distributed-COM calls; /com.allow-dcom;com.allow_dcom = true; autoregister constants of a components typlib on com_load(); /com.autoregister-typelib;com.autoregister_typelib = true; register constants casesensitive; /com.autoregister-casesensitive;com.autoregister_casesensitive = false; show warnings on duplicate constant registrations; /com.autoregister-verbose;com.autoregister_verbose = true; The default character set code-page to use when passing strings to and from COM objects.; Default: system ANSI code page;com.code_page=[mbstring]; language for internal character representation.; /mbstring.language;mbstring.language = Japanese; internal/script encoding.; Some encoding cannot work as internal encoding.; (e.g. SJIS, BIG5, ISO--*); /mbstring.internal-encoding;mbstring.internal_encoding = EUC-JP; http input encoding.; /mbstring.http-input;mbstring.http_input = auto; http output encoding. mb_output_handler must be; registered as output buffer to function; /mbstring.http-output;mbstring.http_output = SJIS; enable automatic encoding translation according to; mbstring.internal_encoding setting. Input chars are; converted to internal encoding by setting this to On.; Note: Do _not_ use automatic encoding translation for; portable libs/applications.; /mbstring.encoding-translation;mbstring.encoding_translation = Off; automatic encoding detection order.; auto means; /mbstring.detect-order;mbstring.detect_order = auto; substitute_character used when character cannot be converted; one from another; /mbstring.substitute-character;mbstring.substitute_character = none;; overload(replace) single byte functions by mbstring functions.; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),; etc. Possible values are 0,1,2,4 or combination of them.; For example, 7 for overload everything.; 0: No overload; 1: Overload mail() function; 2: Overload str*() functions; 4: Overload ereg*() functions; /mbstring.func-overload;mbstring.func_overload = 0; enable strict encoding detection.;mbstring.strict_detection = Off; This directive specifies the regex pattern of content types for which mb_output_handler(); is activated.; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml);mbstring.http_output_conv_mimetype=; Allows to set script encoding. Only affects if PHP is compiled with --enable-zend-multibyte; Default: "";mbstring.script_encoding=[gd]; Tell the jpeg decode to ignore warnings and try to create; a gd image. The warning will then be displayed as notices; disabled by default; /gd.jpeg-ignore-warning;gd.jpeg_ignore_warning = 0[exif]; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS.; With mbstring support this will automatically be converted into the encoding; given by corresponding encode setting. When empty mbstring.internal_encoding; is used. For the decode settings you can distinguish between motorola and; intel byte order. A decode setting cannot be empty.; /exif.encode-unicode;exif.encode_unicode = ISO-8859-15; /exif.decode-unicode-motorola;exif.decode_unicode_motorola = UCS-2BE; /exif.decode-unicode-intel;exif.decode_unicode_intel = UCS-2LE; /exif.encode-jis;exif.encode_jis =; /exif.decode-jis-motorola;exif.decode_jis_motorola = JIS; /exif.decode-jis-intel;exif.decode_jis_intel = JIS[Tidy]; The path to a default tidy configuration file to use when using tidy; /tidy.default-config;tidy.default_config = /usr/local/lib/php/default.tcfg; Should tidy clean and repair output automatically?; WARNING: Do not use this option if you are generating non-html content; such as dynamic images; /tidy.clean-outputtidy.clean_output = Off[soap]; Enables or disables WSDL caching feature.; /soap.wsdl-cache-enabledsoap.wsdl_cache_enabled=1; Sets the directory name where SOAP extension will put cache files.; /soap.wsdl-cache-dirsoap.wsdl_cache_dir="/tmp"; (time to live) Sets the number of second while cached file will be used; instead of original one.; /soap.wsdl-cache-ttlsoap.wsdl_cache_ttl=86400; Sets the size of the cache limit. (Max. number of WSDL files to cache)soap.wsdl_cache_limit = 5[sysvshm]; A default size of the shared memory segment;sysvshm.init_mem = 10000[ldap]; Sets the maximum number of open links or -1 for unlimited.ldap.max_links = -1[mcrypt]; For more information about mcrypt settings see /mcrypt-module-open; Directory where to load mcrypt algorithms; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt);mcrypt.algorithms_dir=; Directory where to load mcrypt modes; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt);mcrypt.modes_dir=[dba];dba.default_handler=[xsl]; Write operations from within XSLT are disabled by default.; XSL_SECPREF_CREATE_DIRECTORY | XSL_SECPREF_WRITE_NETWORK | XSL_SECPREF_WRITE_FILE = 44; Set it to 0 to allow all operations;xsl.security_prefs = 44; Local Variables:; tab-width: 4; End:[opcache]opcache.memory_consumption=128opcache.interned_strings_buffer=8opcache.max_accelerated_files=4000opcache.revalidate_freq=60opcache.fast_shutdown=1opcache.enable_cli=1;zend_extension="D:\phpStudy\php\php-5.3.29-nts\ext\php_opcache.dll"[xcache-common];extension=xcache.dll[xcache.admin]xcache.admin.enable_auth = Onxcache.admin.user = "mOo"; xcache.admin.pass = md5($您的密码); 登录使用 $your_passwordxcache.admin.pass = ""[xcache]xcache.shm_scheme = "mmap"xcache.size =60Mxcache.count = 1xcache.slots =8Kxcache.ttl = 0xcache.gc_interval = 0xcache.var_size = 4Mxcache.var_count = 1xcache.var_slots = 8Kxcache.var_ttl = 0xcache.var_maxttl =0xcache.var_gc_interval =300xcache.readonly_protection = Offxcache.mmap_path ="/dev/zero"xcache.coredump_directory = ""xcache.coredump_type = 0xcache.disable_on_crash = Offxcache.experimental = Offxcache.cacher =Onxcache.stat =Onxcache.optimizer = Off[xcache.coverager]xcache.coverager = Offxcache.coverager_autostart = Onxcache.coveragedump_directory = ""[XDebug]xdebug.profiler_append = 0xdebug.profiler_enable = 1xdebug.profiler_enable_trigger = 0xdebug.profiler_output_dir ="D:\phpStudy\tmp\xdebug"xdebug.trace_output_dir ="D:\phpStudy\tmp\xdebug"xdebug.profiler_output_name = "cache.out.%t-%s"xdebug.remote_enable = 1xdebug.remote_handler = "dbgp"xdebug.remote_host = "127.0.0.1";zend_extension="D:\phpStudy\php\php-5.3.29-nts\ext\php_xdebug.dll"[eAccelerator];extension=eaccelerator.dlleaccelerator.shm_size = "0"eaccelerator.cache_dir = "../tmp"eaccelerator.enable = "1"eaccelerator.debug = 0eaccelerator.check_mtime = "1"eaccelerator.filter = ""eaccelerator.shm_max = "0"eaccelerator.shm_ttl = "0"eaccelerator.shm_prune_period = "0"eaccelerator.shm_only = "0"[apc];extension=php_apc.dllapc.enabled=1apc.shm_size=128Mapc.ttl=7200apc.user_ttl=7200apc.enable_cli=1[zend debug];zend_extension="./ext/ZendDebugger.dll"zend_debugger.allow_hosts=127.0.0.1zend_debugger.expose_remotely=always[Zend]zend_extension="./ext/ZendLoader.dll"zend_loader.enable=1zend_loader.disable_licensing=0zend_loader.obfuscation_level_support=3zend_loader.license_path=extension=php_dblib.dll

还要设置一个什么ON

最后在PHPSTUDY上打开相应的功能。如图:

主要勾选:php_mysql , php_pdo_sqlsrv, php_pdo_sqlite,php_sqlsrv.反正就是自己要用到的这几个。

然后重启PHPSTUDY。

PHP连接MYSQL就可以了。但是PHP连接SQL SERVER就还有问题。还需要两个东西。

参考文献:

/xiaozhegaa/article/details/53741623

/zyf-zhaoyafei/p/4473924.html

其实这两篇文章也写的很清楚了。

下面是PHP FOR SQL SERVER ,过程跟上面说的差不多。首先需要有相应的DLL扩展插件支持,下载,让入D:\phpStudy\php\php-5.3.29-nts\ext文件夹内。修改php.ini文件去注释。再到PHPSTUDY软件中去启动。

1)下载 Microsoft SQL Server PHP 驱动程序。

Microsoft PHP Driver for SQL Server

(2)、解压下载下来的文件将php_pdo_sqlsrv_53_ts_vc9.dll文件和php_sqlsrv_53_ts_vc9.dll文件复制到php安装目录下的ext文件夹中。此处根据版本不同使用的文件不同。

(3)、在php.ini中添加

extension=php_sqlsrv_53_nts.dll

extension=php_pdo_sqlsrv_53_nts.dll

extension=php_mysql.dll

extension=php_mysqli.dll

extension=php_dblib.dll

到很多;extension=***.dll语句后面,注意extension

2)借助 Microsoft SQL Server PHP 驱动程序,PHP 开发人员可以访问 SQL Server 数据库。 此类驱动程序依赖于 Microsoft SQL Server ODBC 驱动程序来处理与 SQL Server 的低级别通信。

所以在服务端还需要安装在服务器端安装SQL Server ODBC 驱动程序:

/zh-cn/library/mt683517.aspx

3)最后,可能还是一直读取错误。

(6)、上面完成之后,测试代码的时候会出现连接失败,因为没有安装sql server nation client,本地客户端,去下载合适的客户端,我使用的是Microsoft? SQL Server? Native Client,下载地址:

/zh-cn/download/details.aspx?id=29065,

客户端下载地址:SQL Server Native Client ODBC Driver/en-us/download/details.aspx?id=29065

如果没有安装,提示的错误是:

=>string'[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序'(length=71)

参考:/PHPjc/1062030.html

/zyf-zhaoyafei/p/4473924.html

/article/b_php_1488628573784.html

(7)、安装完成之后,在重新启动apache,然后访问就可以连接成功了。

(8)、

<?php$db = array('host' => '127.0.0.1', //设置服务器地址'port' => '3306', //设端口 'dbname' => 'test', //设置数据库名'username' => 'root', //设置账号'password' => 'yangji0321',//设置密码'charset' => 'utf8', //设置编码格式'dsn' => 'mysql:host=127.0.0.1;dbname=test;port=3306;charset=utf8', //这里不知道为什么,也需要这样再写一遍。);//连接$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //默认是PDO::ERRMODE_SILENT, 0, (忽略错误模式)PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, // 默认是PDO::FETCH_BOTH, 4);try{$pdo = new PDO($db['dsn'], $db['username'], $db['password'], $options);}catch(PDOException $e){die('数据库连接失败:' . $e->getMessage());}//或者更通用的设置属性方式://$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //设置异常处理方式//$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); //设置默认关联索引遍历echo '<pre/>';//1 查询//1)使用query$stmt = $pdo->query('select * from user limit 2'); //返回一个PDOStatement对象//$row = $stmt->fetch(); //从结果集中获取下一行,用于while循环$rows = $stmt->fetchAll(); //获取所有$row_count = $stmt->rowCount(); //记录数,2print_r($rows);echo '<br>';//2)使用prepare 推荐!$stmt = $pdo->prepare("select * from user where name = ? and age = ? ");$stmt->bindValue(1,'allen');$stmt->bindValue(2,20);$stmt->execute(); //执行一条预处理语句 .成功时返回 TRUE, 失败时返回 FALSE $rows = $stmt->fetchAll();$row_count = $stmt->rowCount(); //记录数,2print_r($rows);print_r($row_count);echo '<br>';//2 新增、更新、删除//A.1)普通操作//$count = $pdo->exec("insert into user(name,gender,age)values('test',2,23)"); //返回受影响的行数 //echo $pdo->lastInsertId();//$count = $pdo->exec("update user set name='test2' where id = 15"); //返回受影响的行数//$count = $pdo->exec("delete from user where id = 15"); //返回受影响的行数//A.2)使用prepare 推荐!$stmt = $pdo->prepare("insert into user(name,gender,age)values(?,?,?)");$stmt->bindValue(1, 'test');$stmt->bindValue(2, 2);$stmt->bindValue(3, 23);$stmt->execute();$count = $stmt->rowCount();//受影响行数echo 'prepare方法影响行数:'.$count; echo '<br>';//A.3)使用prepare 批量新增$stmt = $pdo->prepare("insert into user(name,gender,age)values(?,?,?)");$stmt->bindParam(1, $name);$stmt->bindParam(2, $gender);$stmt->bindParam(3, $age);$data = array(array('t1', 1, 22),array('t2', 2, 23),);foreach ($data as $vo){list($name, $gender, $age) = $vo;$stmt->execute();}//B)更新操作echo '<br>';$stmt = $pdo->prepare("UPDATE `user` SET `age`=? WHERE (`name`= ? )");$stmt->bindValue(1, '20');$stmt->bindValue(2, 'allen');$num = $stmt->execute();$count = $stmt->rowCount();//受影响行数echo '更新操作影响行数:'.$count; //删除操作$stmt = $pdo->prepare("DELETE FROM `user` WHERE (`name`= ? )");$stmt->bindValue(1, 't1');$num = $stmt->execute();$count = $stmt->rowCount();//受影响行数echo '删除操作影响行数:'.$count; # 【示例5:统计数据】:统计company表有多少条数据echo '<br>';$num = $pdo->query("select count(*) from user");$count = $num->fetchColumn();echo '共有数据:【'.$count.'】条';?>pdo::query()方法当执行返回结果集的select查询时,或者所影响的行数无关紧要时,应当使用pdo对象中的query()方法.如果该方法成功执行指定的查询,则返回一个PDOStatement对象.如果使用了query()方法,并想了解获取数据行总数,可以使用PDOStatement对象中的rowCount()方法获取.pdo::exec()方法当执行insert,update,delete没有结果集的查询时,使用pdo对象中的exec()方法去执行.该方法成功执行时,将返回受影响的行数.注意,该方法不能用于select查询.PDO事务:$pdo->beginTransaction();//开启事务处理try{//PDO预处理以及执行语句...$pdo->commit();//提交事务}catch(PDOException $e){$pdo->rollBack();//事务回滚//相关错误处理throw $e;}

注意:在php.ini文件所在的文件夹中必须要有ntwdblib.dll文件存在。

(9)、补充:如果想要知道需要驱动的版本和本地客户端的版本,可以查看/manual/en/sqlsrv.requirements.php,中的内容,该内容是php官网文档中的内容,上面介绍了详细步骤,要学会去官网看英文文档,很详细。函数说明在文档中也存在。

第三步、下载Microsoft SQL Server Native Client进行安装。

下载地址:/dyn-postdownload.php?p=144149&t=0&i=2

下载后,运行应用程序sqlncli,一路next后,安装完成即可!

好了,最后上代码:

结果代码一:PHP通过PDO 方法连接MYSQL 数据库方法:

<?php$db = array('host' => '127.0.0.1', //设置服务器地址'port' => '3306', //设端口 'dbname' => 'test', //设置数据库名'username' => 'root', //设置账号'password' => '数据库密码***',//设置密码'charset' => 'utf8', //设置编码格式'dsn' => 'mysql:host=127.0.0.1;dbname=test;port=3306;charset=utf8', //这里不知道为什么,也需要这样再写一遍。);//连接$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //默认是PDO::ERRMODE_SILENT, 0, (忽略错误模式)PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, // 默认是PDO::FETCH_BOTH, 4);try{$pdo = new PDO($db['dsn'], $db['username'], $db['password'], $options);}catch(PDOException $e){die('数据库连接失败:' . $e->getMessage());}//或者更通用的设置属性方式://$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //设置异常处理方式//$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); //设置默认关联索引遍历echo '<pre/>';//1 查询//1)使用query$stmt = $pdo->query('select * from user limit 2'); //返回一个PDOStatement对象//$row = $stmt->fetch(); //从结果集中获取下一行,用于while循环$rows = $stmt->fetchAll(); //获取所有$row_count = $stmt->rowCount(); //记录数,2print_r($rows);echo '<br>';//2)使用prepare 推荐!$stmt = $pdo->prepare("select * from user where name = ? and age = ? ");$stmt->bindValue(1,'allen');$stmt->bindValue(2,20);$stmt->execute(); //执行一条预处理语句 .成功时返回 TRUE, 失败时返回 FALSE $rows = $stmt->fetchAll();$row_count = $stmt->rowCount(); //记录数,2print_r($rows);print_r($row_count);echo '<br>';//2 新增、更新、删除//A.1)普通操作//$count = $pdo->exec("insert into user(name,gender,age)values('test',2,23)"); //返回受影响的行数 //echo $pdo->lastInsertId();//$count = $pdo->exec("update user set name='test2' where id = 15"); //返回受影响的行数//$count = $pdo->exec("delete from user where id = 15"); //返回受影响的行数//A.2)使用prepare 推荐!$stmt = $pdo->prepare("insert into user(name,gender,age)values(?,?,?)");$stmt->bindValue(1, 'test');$stmt->bindValue(2, 2);$stmt->bindValue(3, 23);$stmt->execute();$count = $stmt->rowCount();//受影响行数echo 'prepare方法影响行数:'.$count; echo '<br>';//A.3)使用prepare 批量新增$stmt = $pdo->prepare("insert into user(name,gender,age)values(?,?,?)");$stmt->bindParam(1, $name);$stmt->bindParam(2, $gender);$stmt->bindParam(3, $age);$data = array(array('t1', 1, 22),array('t2', 2, 23),);foreach ($data as $vo){list($name, $gender, $age) = $vo;$stmt->execute();}//B)更新操作echo '<br>';$stmt = $pdo->prepare("UPDATE `user` SET `age`=? WHERE (`name`= ? )");$stmt->bindValue(1, '20');$stmt->bindValue(2, 'allen');$num = $stmt->execute();$count = $stmt->rowCount();//受影响行数echo '更新操作影响行数:'.$count; //删除操作$stmt = $pdo->prepare("DELETE FROM `user` WHERE (`name`= ? )");$stmt->bindValue(1, 't1');$num = $stmt->execute();$count = $stmt->rowCount();//受影响行数echo '删除操作影响行数:'.$count; # 【示例5:统计数据】:统计company表有多少条数据echo '<br>';$num = $pdo->query("select count(*) from user");$count = $num->fetchColumn();echo '共有数据:【'.$count.'】条';?>pdo::query()方法当执行返回结果集的select查询时,或者所影响的行数无关紧要时,应当使用pdo对象中的query()方法.如果该方法成功执行指定的查询,则返回一个PDOStatement对象.如果使用了query()方法,并想了解获取数据行总数,可以使用PDOStatement对象中的rowCount()方法获取.pdo::exec()方法当执行insert,update,delete没有结果集的查询时,使用pdo对象中的exec()方法去执行.该方法成功执行时,将返回受影响的行数.注意,该方法不能用于select查询.PDO事务:$pdo->beginTransaction();//开启事务处理try{//PDO预处理以及执行语句...$pdo->commit();//提交事务}catch(PDOException $e){$pdo->rollBack();//事务回滚//相关错误处理throw $e;}

结果代码二:PHP连接SQL SERVER 数据库:

<?php// include('../includes/db-connect.php');//header("content-Type: text/html; charset=utf-8");//这个编码方案必须要与数据库方案一致,不然出现乱码。需要编码转换。header("content-Type: text/html; charset=gbk");$serverName = "192.168.1.8"; //数据库服务器地址$uid = "sa";//数据库用户名$pwd = "数据库密码***"; //数据库密码$connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>"UFDATA_994_");$conn = sqlsrv_connect( $serverName, $connectionInfo);if( $conn == false){echo "连接失败!";die( print_r( sqlsrv_errors(), true));}else{echo "连接成功!"; }$query = sqlsrv_query($conn, "select * from UserDefine");while($row = sqlsrv_fetch_array($query)){$address = $row[1]; $address = iconv('GBK','UTF-8',$address); //编码转化,解决乱码问题。BGK转UTF-8,数据库是GBK的,网页是UTF-8的。//$str=iconv ("gbk","utf-8", $row ); //第一次转换,不可省略,省略立即报错 //$cmd='SELECT Id FROM information where DETAIL LIKE \'%'.$str.'%\';';//拼接 //$long= iconv ( "utf-8", "gb2312//IGNORE", $cmd );//第二次转换,不可省略 //$result = $this->extend->query($long);//正常运行未报错 print_r( $address);echo '<pre/>';}sqlsrv_close( $conn);/**$conn = new PDO("sqlsrv:server=192.168.1.8;database=UFDATA_994_","sa","qjspring0571@u8server");//$sql = "select count(*) count from UserDefine";$sql = "select * from UserDefine";$res = $conn->query($sql);while ($row = $res->fetch()){print_r($row);}*/$serverName = "192.168.1.8"; //数据库服务器地址$uid = "sa"; //数据库用户名$pwd = "qjspring0571@u8server"; //数据库密码$connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>"UFDATA_994_");$conn = sqlsrv_connect( $serverName, $connectionInfo);if( $conn == false){echo "连接失败!";die( print_r( sqlsrv_errors(), true));}else{echo "连接成功!"; }$query = sqlsrv_query($conn, "select * from UserDefine");while($row = sqlsrv_fetch_array($query)){print_r($row);}sqlsrv_close( $conn);echo '<pre/>';/** 定义字符转换函数,解决mssql中文乱码问题 function convert2utf8($string) { return iconv("gbk","utf-8",$string); } function convert2gbk($string) { return iconv("utf-8","gbk",$string); }*/ ?>

最后发现我的数据库编码为GBK,网页如果设置编码为UTF-8的话就会出现乱码。解决方法如下:

$data =iconv('GB2312','UTF-8',$data)

解决中文乱码问题参考文献:

/lmei/p/3840079.html

/connora/article/details/53378580

/ChineseAnt/article/details/5614870

参考文献:

/chenchenphp/p/6372947.html

/archives/271.html

登入,注册功能:

//10/01/PHP%E8%BF%9E%E6%8E%A5MySQL%E6%95%B0%E6%8D%AE%E5%BA%93%20/

如果觉得《PHP连接SQL SERVER 数据库 PHP连接MYSQL数据库并解决中文乱码问题。》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。