Saya melakukan tutorial dan mendapatkan kesalahan ini:
Kesalahan fatal: Kelas 'MySQLi' tidak ditemukan (URL PANJANG) di baris 8
Kode pada baris 8 adalah:
$mysqli = new MySQLi($db_server, $db_user, $db_pass, $db_name);
Saya melihat online seseorang berkata untuk melihat apakah itu dihidupkan di phpinfo () saya, tetapi tidak ada yang terdaftar di sana di bawah untuk "mysqli".
Juga, saya menjalankan PHP versi 5.2.5
Jawaban:
Sepertinya Anda hanya perlu menginstal MySQLi .
Jika Anda merasa telah melakukannya dan masih mengalami masalah, harap posting sistem operasi Anda dan hal lain yang mungkin membantu mendiagnosisnya lebih lanjut.
sumber
sudo yum install php-mysqli
sudo yum install php56-mysqlnd.x86_64
(pilih yang cocok dengan versi php mana yang telah Anda instal)Anda dapat memeriksa apakah perpustakaan mysqli ada dengan menjalankan kode ini:
if (!function_exists('mysqli_init') && !extension_loaded('mysqli')) { echo 'We don\'t have mysqli!!!'; } else { echo 'Phew we have it!'; }
sumber
Jika Anda menggunakan Ubuntu , jalankan:
sumber
sudo
apt-get -y install php5-mysql php5-mysqlnd
untuk mendapatkan keduanya. Apakah itu yang Anda lewatkan, @Hermann Ingjaldsson?Jika Anda memanggil "mysqli baru (..)" dari dalam kelas yang memiliki namespace, Anda mungkin melihat kesalahan serupa
Fatal error: Class 'foo\bar\mysqli' not found in
. Cara untuk memperbaikinya adalah dengan mengaturnya secara eksplisit ke namespace root dengan garis miring terbalik sebelumnya seperti:<?php $mysqli = new \MySQLi($db_server, $db_user, $db_pass, $db_name);
sumber
Selain menghapus komentar pada ekstensi php_mysqli.dll di php.ini , juga hapus komentar direktif extension_dir di php.ini dan tentukan lokasi Anda:
extension_dir = "C:\software\php\dist\ext"
Ini membuatnya berhasil untuk saya.
sumber
./ext
yang merupakan jalan relatif. Dan saya harus mengganti namaphp.ini-development
menjadiphp.ini
dan menghapus komentar di file ituextension=php_mysqli.dll
. Oh nak, aku tidak merindukanmu PHP.OS saya adalah Ubuntu . Saya memecahkan masalah ini dengan menggunakan:
sumber
Jika Anda menggunakan Docker ...
Di dalam RUN php-container:
#docker-php-ext-install mysqli #apachectl restart
sumber
Sepertinya ada masalah dengan instalasi Anda.
http://www.php.net/manual/en/mysqli.installation.php
sumber
Cara Mengaktifkan mysqli di php.ini
Kedua (tidak berkomentar):include_path = "C:\php\includes"
Ketiga (hapus komentar dan edit konfigurasi):extension_dir = "ext"
Bagaimana memuat file php.ini
sumber
Saya pikir saya dapat membantu siapa saja dengan masalah yang sama menggunakan server Namesco. Saya telah mencoba untuk memperbaiki masalah ini setelah memindahkan database dari server lokal saya di pc rumah ke namesco. Mereka tidak akan membantu mereka mengatakan itu adalah masalah pengkodean.
Sayangnya, artikel dukungan mereka hanya membuang-buang waktu. Setelah membaca ini saya pergi ke antarmuka admin dengan tekad baru.
sumber
Beberapa distribusi (seperti Gentoo ) mendukung banyak instalasi PHP, dan Anda harus memastikan Anda menggunakan salah satunya dengan mysqli terinstal dan aktif.
Di Gentoo, saya telah menginstal PHP baru (dengan flag USE mysqli diaktifkan), tetapi saya perlu mengaktifkan versi baru PHP (karena yang lama pasti tidak memiliki mysqli):
# eselect php list apache2 [1] php5.3 * [2] php5.5 # eselect php set apache2 2 You have to run `/etc/init.d/apache2 restart' for the changes to take effect # /etc/init.d/apache2 restart
sumber
Saya memeriksa semua di atas dan itu tidak berhasil untuk saya,
Ada beberapa langkah yang saya temukan.
Saya menggunakan PHP Versi 5.5.9-1ubuntu4.17 di Ubuntu 14.04
Cek dulu foldernya
#ls /etc/php5/mods-available/ json.ini mcrypt.ini mysqli.ini mysql.ini mysqlnd.ini opcache.ini pdo.ini pdo_mysql.ini readline.ini xcache.ini
Jika tidak mengandung mysqli.ini , baca jawaban lain untuk menginstalnya,
Buka
php.ini
find extension_dirDalam kasus saya, saya harus mengatur
extension_dir = /usr/lib/php5/20121212
Dan mulai ulang apache2:
/ect/init.d/apache2 restart
sumber
Zip PHP menyertakan sebagian besar ekstensi yang umum digunakan (* .dll di windows seperti php_mysqli.dll) di bawah direktori \ ext, namun tidak diaktifkan secara default. Anda mungkin mendapatkan Kesalahan Fatal ini ketika mencoba menggunakan MySQLi:
( ! ) Fatal error: Uncaught Error: Class 'mysqli' not found in C:\myProject\ class.Database.php on line 24
Untuk mengaktifkan ekstensi, buka php.ini (Anda mungkin perlu menyalin php.ini-development sebagai php.ini), dan hapus komentar (atau tambahkan) dua baris ini:
extension_dir = "ext"
Dan ekstensi tertentu yang Anda dapatkan Kesalahan Fatalnya, yaitu untuk mysqli:
sumber
di ubuntu:
sumber
Pada instalasi baru PHP, hapus
;
sebelumnyaextension_dir
di php.ini.sumber
di Debian 10
sumber
Bagi siapa pun yang menggunakan buruh pelabuhan, saya mengalami masalah ini, dan menyelesaikannya dengan menggunakan Dockerfile saya sendiri, bukan gambar php: fpm:
FROM php:fpm RUN docker-php-ext-install mysqli
sumber
Saya menemukan solusi untuk masalah ini setelah prosedur analisis yang lama. Setelah menguji instalasi php saya dengan benar dengan fitur baris perintah, saya menemukan bahwa php berfungsi dengan baik dan dapat bekerja dengan database mysql. Btw. Anda dapat menjalankan file-kode dengan kode php dengan perintah php -f filename.php
Jadi saya menyadari, pasti ada yang salah dengan Apache.
Saya membuat file hanya dengan fungsi phpinfo () di dalamnya.
Disini saya melihat, bahwa pada baris
Loaded Configuration File
file config saya tidak dimuat, malah ada yang disebutkan (tidak ada).
Akhirnya saya menemukan entri dalam konfigurasi Apache
<IfModule php5_module> PHPINIDir "C:/xampp/php" </IfModule>
Tetapi saya telah menginstal PHP 7 sehingga Apache tidak dapat memuat file php.ini karena tidak ada entri untuk itu. saya tambahkan
<IfModule php7_module> PHPINIDir "C:/xampp/php" </IfModule>
dan setelah restart Apache semuanya bekerja dengan baik.
Blok kode di atas saya temukan di file httpd-xampp.conf saya. Mungkin itu ada di tempat lain di konfigurasi Anda.
Di file yang sama saya telah mengubah sebelumnya pengaturan untuk php 7 sebagai pengganti versi php 5.
# # PHP-Module setup # #LoadFile "C:/xampp/php/php5ts.dll" #LoadModule php5_module "C:/xampp/php/php5apache2_4.dll" LoadFile "C:/xampp/php/php7ts.dll" LoadModule php7_module "C:/xampp/php/php7apache2_4.dll"
Seperti yang Anda lihat, saya telah menginstal paket xampp tetapi masalah ini hanya ada di sisi Apache.
sumber
instal ekstensi-phpXX oleh PHP. Dalam kasus FreeBSD saya:
sumber
Saya menggunakan xampp dan masalah saya diperbaiki setelah saya mengganti nama:
extension_dir = "ext"
untuk
extension_dir = "C:\xampp\php\ext"
PS: Jangan lupa restart apache setelah melakukan perubahan ini!
sumber
Di php.ini:
extension_dir ="c:/wamp64/bin/php/php7.4.9/ext/"
Pastikan versi PHP sudah benar.
sumber
;extension=mysqli
;
simbolnyaif (!function_exists('mysqli_init') && !extension_loaded('mysqli')) { echo 'We don\'t have mysqli!!!'; } else { echo 'mysqli is installed'; }
sumber
<?php /* If the error is due to calling mysqli in a class */ class dbconnect extends mysqli{ private $host = 'localhost'; private $user = 'root'; private $pass = ''; private $db = 'test'; public function __construct() { parent::__construct($this->host, $this->user, $this->pass, $this->db); if (mysqli_connect_error()) { die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); } } } ?>
sumber