2012-11-02 69 views
3

我在這個網站上找不到這個問題。當我打開我的網頁,我得到以下錯誤調用未定義的函數mysql_query()

Call to undefined function mysql_query() 

所以我檢查了我的phpinfo()文件,我無法找到所有的mysql擴展或任何擴展。 於是我走進我的PHP ini文件和註釋掉擴展

extension=php_pdo_mssql.dll 
extension=php_pdo_mysql.dll 

我重新啓動我的Apache服務器和MySQL,但沒有任何改變和延伸物不被認可。我有MySQL服務器運行,我有Apache運行PHP,但我很難得到擴展加載。所以我檢查了我的擴展目錄(目錄我的phpinfo()指定,並沒有什麼。)MacPorts除了我的擴展安裝了一切。有沒有搞錯 ??還有什麼我失蹤了。

的php.ini

;;;;;;;;;;;;;;;;;;;;;; 
; 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.dll 
extension=php_curl.dll 
;extension=php_fileinfo.dll 
;extension=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.dll 
;extension=php_mbstring.dll 
;extension=php_exif.dll  ; Must be after mbstring as it depends on it 
extension=php_mysql.dll 
extension=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.dll 
extension=php_pdo_mysql.dll 
extension=php_pdo_oci.dll 
extension=php_pdo_odbc.dll 
;extension=php_pdo_pgsql.dll 
;extension=php_pdo_sqlite.dll 
;extension=php_pgsql.dll 
;extension=php_pspell.dll 
;extension=php_shmop.dll 

; The MIBS data available in the PHP distribution must be installed. 
; See http://www.php.net/manual/en/snmp.installation.php 
;extension=php_snmp.dll 

extension=php_soap.dll 
extension=php_sockets.dll 
extension=php_sqlite.dll 
extension=php_sqlite3.dll 
;extension=php_sybase_ct.dll 
;extension=php_tidy.dll 
;extension=php_xmlrpc.dll 
;extension=php_xsl.dll 
;extension=php_zip.dll 

;;;;;;;;;;;;;;;;;;; 
; Module Settings ; 
;;;;;;;;;;;;;;;;;;; 

[Date] 
; Defines the default timezone used by the date functions 
; http://php.net/date.timezone 
;date.timezone = 

; http://php.net/date.default-latitude 
;date.default_latitude = 31.7667 

; http://php.net/date.default-longitude 
;date.default_longitude = 35.2333 

; http://php.net/date.sunrise-zenith 
;date.sunrise_zenith = 90.583333 

; http://php.net/date.sunset-zenith 
;date.sunset_zenith = 90.583333 

[filter] 
; http://php.net/filter.default 
;filter.default = unsafe_raw 

; http://php.net/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] 
; http://php.net/sqlite.assoc-case 
;sqlite.assoc_case = 0 

[sqlite3] 
;sqlite3.extension_dir = 

[Pcre] 
;PCRE library backtracking limit. 
; http://php.net/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). 
; http://php.net/pcre.recursion-limit 
;pcre.recursion_limit=100000 

[Pdo] 
; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" 
; http://php.net/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 
; http://php.net/pdo_mysql.cache_size 
pdo_mysql.cache_size = 2000 

; Default socket name for local MySQL connects. If empty, uses the built-in 
; MySQL defaults. 
; http://php.net/pdo_mysql.default-socket 
pdo_mysql.default_socket= 

[Phar] 
; http://php.net/phar.readonly 
;phar.readonly = On 

; http://php.net/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(). 
; http://php.net/define-syslog-variables 
define_syslog_variables = Off 

[mail function] 
; For Win32 only. 
; http://php.net/smtp 
SMTP = localhost 
; http://php.net/smtp-port 
smtp_port = 25 

; For Win32 only. 
; http://php.net/sendmail-from 
;sendmail_from = [email protected] 

; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). 
; http://php.net/sendmail-path 
;sendmail_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 filename 
mail.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] 
; http://php.net/sql.safe-mode 
sql.safe_mode = Off 

[ODBC] 
; http://php.net/odbc.default-db 
;odbc.default_db = Not yet implemented 

; http://php.net/odbc.default-user 
;odbc.default_user = Not yet implemented 

; http://php.net/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. 
; http://php.net/odbc.allow-persistent 
odbc.allow_persistent = On 

; Check that a connection is still valid before reuse. 
; http://php.net/odbc.check-persistent 
odbc.check_persistent = On 

; Maximum number of persistent links. -1 means no limit. 
; http://php.net/odbc.max-persistent 
odbc.max_persistent = -1 

; Maximum number of links (persistent + non-persistent). -1 means no limit. 
; http://php.net/odbc.max-links 
odbc.max_links = -1 

; Handling of LONG fields. Returns number of bytes to variables. 0 means 
; passthru. 
; http://php.net/odbc.defaultlrl 
odbc.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 
; http://php.net/odbc.defaultbinmode 
odbc.defaultbinmode = 1 

;birdstep.max_links = -1 



[MySQL] 
; Allow accessing, from PHP's perspective, local files with LOAD DATA statements 
; http://php.net/mysql.allow_local_infile 
mysql.allow_local_infile = On 

; Allow or prevent persistent links. 
; http://php.net/mysql.allow-persistent 
mysql.allow_persistent = On 

; If mysqlnd is used: Number of cache slots for the internal result set cache 
; http://php.net/mysql.cache_size 
mysql.cache_size = 2000 

; Maximum number of persistent links. -1 means no limit. 
; http://php.net/mysql.max-persistent 
mysql.max_persistent = -1 

; Maximum number of links (persistent + non-persistent). -1 means no limit. 
; http://php.net/mysql.max-links 
mysql.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. 
; http://php.net/mysql.default-port 
mysql.default_port = 

; Default socket name for local MySQL connects. If empty, uses the built-in 
; MySQL defaults. 
; http://php.net/mysql.default-socket 
mysql.default_socket = 

; Default host for mysql_connect() (doesn't apply in safe mode). 
; http://php.net/mysql.default-host 
mysql.default_host = 

; Default user for mysql_connect() (doesn't apply in safe mode). 
; http://php.net/mysql.default-user 
mysql.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. 
; http://php.net/mysql.default-password 
mysql.default_password = 

; Maximum time (in seconds) for connect timeout. -1 means no limit 
; http://php.net/mysql.connect-timeout 
mysql.connect_timeout = 60 

; Trace mode. When trace_mode is active (=On), warnings for table/index scans and 
; SQL-Errors will be displayed. 
; http://php.net/mysql.trace-mode 
mysql.trace_mode = Off 

[MySQLi] 

; Maximum number of persistent links. -1 means no limit. 
; http://php.net/mysqli.max-persistent 
mysqli.max_persistent = -1 

; Allow accessing, from PHP's perspective, local files with LOAD DATA statements 
; http://php.net/mysqli.allow_local_infile 
;mysqli.allow_local_infile = On 

; Allow or prevent persistent links. 
; http://php.net/mysqli.allow-persistent 
mysqli.allow_persistent = On 

; Maximum number of links. -1 means no limit. 
; http://php.net/mysqli.max-links 
mysqli.max_links = -1 

; If mysqlnd is used: Number of cache slots for the internal result set cache 
; http://php.net/mysqli.cache_size 
mysqli.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. 
; http://php.net/mysqli.default-port 
mysqli.default_port = 3306 

; Default socket name for local MySQL connects. If empty, uses the built-in 
; MySQL defaults. 
; http://php.net/mysqli.default-socket 
mysqli.default_socket = 

; Default host for mysql_connect() (doesn't apply in safe mode). 
; http://php.net/mysqli.default-host 
mysqli.default_host = 

; Default user for mysql_connect() (doesn't apply in safe mode). 
; http://php.net/mysqli.default-user 
mysqli.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. 
; http://php.net/mysqli.default-pw 
mysqli.default_pw = 

; Allow or prevent reconnect 
mysqli.reconnect = Off 

[mysqlnd] 
; Enable/Disable collection of general statistics by mysqlnd which can be 
; used to tune and monitor MySQL operations. 
; http://php.net/mysqlnd.collect_statistics 
mysqlnd.collect_statistics = On 

; Enable/Disable collection of memory usage statistics by mysqlnd which can be 
; used to tune and monitor MySQL operations. 
; http://php.net/mysqlnd.collect_memory_statistics 
mysqlnd.collect_memory_statistics = On 

; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. 
; http://php.net/mysqlnd.net_cmd_buffer_size 
;mysqlnd.net_cmd_buffer_size = 2048 

; Size of a pre-allocated buffer used for reading data sent by the server in 
; bytes. 
; http://php.net/mysqlnd.net_read_buffer_size 
;mysqlnd.net_read_buffer_size = 32768 

[OCI8] 

; Connection: Enables privileged connections using external 
; credentials (OCI_SYSOPER, OCI_SYSDBA) 
; http://php.net/oci8.privileged-connect 
;oci8.privileged_connect = Off 

; Connection: The maximum number of persistent OCI8 connections per 
; process. Using -1 means no limit. 
; http://php.net/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. 
; http://php.net/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. 
; http://php.net/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. 
; http://php.net/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. 
; http://php.net/oci8.default-prefetch 
;oci8.default_prefetch = 100 

; Compatibility. Using On means oci_close() will not close 
; oci_connect() and oci_new_connect() connections. 
; http://php.net/oci8.old-oci-close-semantics 
;oci8.old_oci_close_semantics = Off 

[PostgreSQL] 
; Allow or prevent persistent links. 
; http://php.net/pgsql.allow-persistent 
pgsql.allow_persistent = On 

; Detect broken persistent links always with pg_pconnect(). 
; Auto reset feature requires a little overheads. 
; http://php.net/pgsql.auto-reset-persistent 
pgsql.auto_reset_persistent = Off 

; Maximum number of persistent links. -1 means no limit. 
; http://php.net/pgsql.max-persistent 
pgsql.max_persistent = -1 

; Maximum number of links (persistent+non persistent). -1 means no limit. 
; http://php.net/pgsql.max-links 
pgsql.max_links = -1 

; Ignore PostgreSQL backends Notice message or not. 
; Notice message logging require a little overheads. 
; http://php.net/pgsql.ignore-notice 
pgsql.ignore_notice = 0 

; Log PostgreSQL backends Notice message or not. 
; Unless pgsql.ignore_notice=0, module cannot log notice message. 
; http://php.net/pgsql.log-notice 
pgsql.log_notice = 0 

[Sybase-CT] 
; Allow or prevent persistent links. 
; http://php.net/sybct.allow-persistent 
sybct.allow_persistent = On 

; Maximum number of persistent links. -1 means no limit. 
; http://php.net/sybct.max-persistent 
sybct.max_persistent = -1 

; Maximum number of links (persistent + non-persistent). -1 means no limit. 
; http://php.net/sybct.max-links 
sybct.max_links = -1 

; Minimum server message severity to display. 
; http://php.net/sybct.min-server-severity 
sybct.min_server_severity = 10 

; Minimum client message severity to display. 
; http://php.net/sybct.min-client-severity 
sybct.min_client_severity = 10 

; Set per-context timeout 
; http://php.net/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. 
; http://php.net/bcmath.scale 
bcmath.scale = 0 

編輯

我使用的是Mac和檢查我上面的設置。我還安裝了激活php_mysql.dll文件以及

extension=php_mysql.dll 
extension=php_mysqli.dll 

這是我phpinfo()

enter image description here

有3次出現在我的網頁上的字的MySQL。

編輯

確定我有一個截圖,其中顯示出擴展dir是,但是當我去那裏,我沒有看到任何擴展。 macports安裝可能會被破壞?

enter image description here

+0

你重新啓動服務器? – Andrew

+0

這也是一個serverfault問題。 – thatidiotguy

+0

確保您正在編輯正確的php.ini文件,有一些示例(或其他)配置。 – RezaSh

回答

4

於是開始使用mysqli_()並停止使用mysql_()

閱讀紅色的大盒子上this

使用mysqli_()或者PDO

8

mysql_query()不是PDO的一部分,因此這些DLL你正在檢查(哪些是PDO的dll支持MySQL)不是你應該檢查的那個。你想檢查php_mysql.dll(Linux服務器上的.so)。

但PDO絕對是訪問MySQL的正確方法。這比使用mysql_query()好得多。

閱讀更多在這裏,on PHP's PDO page

+2

它可能是最好的'mysql_query'甚至沒有定義。 – tadman

1

這些擴展名從/etc/php.d下相應的.ini文件中加載。嘗試使用完整的路徑給他們,像在/etc/php.d/mysql.ini用mysql:

延長=的/ usr/lib64下/ PHP /模塊/ mysql.so