2012-05-16 41 views
30

Tôi đã thiết lập PHP, MySQL và Apache. localhost() cho PHP và nó hoạt động tốt. Nhưng sau khi tôi tải xuống MySQL, nó báo cáo:Lỗi nghiêm trọng: Gọi đến chức năng không xác định mysql_connect()

Fatal error: Call to undefined function mysql_connect()

Làm cách nào để khắc phục sự cố này?

+0

Bạn khởi động lại apache sau khi bạn cài đặt các gói? – Devator

+0

http://nz.php.net/manual/en/mysql.installation.php – zerkms

+1

Bạn đã gắn thẻ câu hỏi của mình [mysql-error-1064] - làm cách nào bạn nhận được điều đó nếu tập lệnh của bạn không thể giao tiếp với MySQL? – Repox

Trả lời

6

Xác minh rằng cài đặt PHP của bạn đã được biên dịch với hỗ trợ mysql. Tạo một trang web thử nghiệm có chứa <?php phpinfo(); exit(); ?> và tải nó trong trình duyệt của bạn. Tìm kiếm trang cho MySQL. Nếu bạn không nhìn thấy nó, bạn cần phải biên dịch lại PHP với hỗ trợ MySQL, hoặc cài đặt lại gói PHP đã được tích hợp sẵn trong

+4

và đây là nguồn bạn đã sao chép từ http://www.somacon.com/p109.php –

+1

có offcourse để được trợ giúp! –

+0

Tôi có vấn đề tương tự, tôi không thấy bất kỳ MySQL trong trang thử nghiệm của tôi: https://jsfiddle.net/ad0gd90y/. Thay vào đó tôi chỉ thấy "mysqlnd". Tôi có nên cài đặt MySQL trước PHP không? Làm thế nào để biên dịch lại PHP với MySQL [email protected] – rosemary

29

Mở terminal của bạn và chạy lệnh dưới đây.

sudo apt-get install mysql-server 

Nếu bạn đang chạy PHP bạn cũng sẽ cần phải cài đặt các module php cho mysql 5:

sudo apt-get install php5-mysql 
1

Am sử dụng windows 8 n vấn đề này đã được giải quyết bằng cách thay đổi các biến môi trường

sau các bước sau: Mở thuộc tính máy tính của tôi-> cài đặt hệ thống nâng cao-> Biến môi trường. Trong 'biến hệ thống', chọn 'đường dẫn' và nhấp vào 'chỉnh sửa' Trong 'giá trị biến', thêm 'C: \ php;' HOẶC đường dẫn nơi cài đặt php.

nhấp OK và áp dụng cài đặt và khởi động lại hệ thống. Nó sẽ hoạt động.

4
PHP.INI 

Kiểm tra nếu bạn quên để cho phép các tùy chọn bên dưới (tải các module cho mysql số những người khác):

; Directory in which the loadable extensions (modules) reside. 
; http://php.net/extension-dir 
; extension_dir = "./" 
; On windows: 
extension_dir = "ext" 
2

Tôi có vấn đề này như nhau trên RHEL6. Nó chỉ ra rằng tập tin mysql.ini trong /etc/php.d chỉ có một tên mô-đun nhưng cần một tên đường dẫn đầy đủ. Trên hệ thống RHEL6 của tôi, mục nhập hoạt động là:

; Enable mysql extension module 

extension=/usr/lib64/php/modules/mysql.so 

Sau khi sửa đổi tệp, tôi khởi động lại apache và mọi thứ đã hoạt động.

14

Nếu bạn gặp lỗi này sau khi nâng cấp lên PHP 7.0, thì bạn đang sử dụng thư viện không dùng nữa.

mysql_connect — Open a connection to a MySQL Server
Warning
This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used.

More đây: http://php.net/manual/en/function.mysql-connect.php

+0

Điều này sẽ được đánh dấu là câu trả lời được chấp nhận - thực tế không tốt để vẫn sử dụng các cuộc gọi mysql_ *. – Skytiger

22

Sử dụng "mysqli_connect"

$con = mysqli_connect("127.0.0.1","root","pass","your_database"); 

nó sẽ gonna làm việc, tôi cố định vấn đề của tôi với điều này.

0

Kiểm tra xem mô-đun mysqli được cài đặt cho phiên bản PHP của bạn

$ ls /etc/php/7.0/mods-available/mysql* 
/etc/php/7.0/mods-available/mysqli.ini /etc/php/7.0/mods-available/mysqlnd.ini 

Bật mô-đun

$ sudo phpenmod mysqli 
0

Bộ luật này có thể giúp bạn

<?php 

$servername = "localhost"; 
$username = "root"; 
$password = ""; 


$con = new mysqli($servername, $username, $password); 

?> 

nhưng thay đổi "servername", "tên người dùng" và "mật khẩu"

0

Đây là cách khắc phục nhanh:

Tất cả những người thuận tiện có thể sẽ ghét tôi vì câu trả lời này. Nhưng tôi đã gặp lỗi tương tự trên máy chủ: Lỗi nghiêm trọng: Lỗi bắt buộc: Gọi hàm không xác định mysql_connect() đang sử dụng PHP 7. Không có thời gian viết lại tất cả mã mysql để sửa nhanh, tạm thời nếu có nhu cầu trong CPANEL để tìm Cấu hình PHP và thay đổi phiên bản cho tài khoản đó thành một cái gì đó như PHP 5.4 thay vì PHP 7. Sau đó, mã hoạt động tốt mà không có lỗi ở trên.

0

Một giải pháp có thể được sử dụng các chức năng chuyển đổi như thế này để bắt đầu sử dụng mysqli thay vì mysql trên toàn bộ ứng dụng của bạn:

if (!function_exists('mysql_connect')) { 
    function mysql_connect($host = '', $user = '', $password = '', $database = '', $port = 0, $socket = '') { 
     return mysqli_connect($host, $user, $password, $database, $port, $socket); 
    } 
} 


if (!function_exists('mysql_select_db')) { 
    function mysql_select_db($link, $dbname) { 
     mysqli_select_db($link, $dbname); 
    } 
} 
-1

Vấn đề xuất hiện khi bạn đang sử dụng mysql_connect trong dòng mã của bạn vì vậy chỉ cần thêm nó như trong mysqli_cOnnect và nó sẽ giải quyết vấn đề.
bạn cũng phải sử dụng mysqli trong suốt các dòng mã của bạn hoặc Sự cố sẽ hiển thị lại.
ví dụ mysql_select_db sau đó sẽ là mysqL_select_db.
Đó là để chọn Cơ sở dữ liệu.

Cảm ơn hy vọng điều này sẽ giúp

1

Lỗi này chỉ đến cho phiên bản PHP v7.0 của bạn. bạn có thể tránh những sử dụng PHP 5.0 khác

sử dụng nó

mysqli_connect("localhost","root","") 

tôi đã làm chỉ mysqli từ mysql

Các vấn đề liên quan