我有一个php脚本(machine_db.php),它与mysql数据库建立如下连接:
<?php
//phpinfo();
// 1 connect to mysql
$servername = "localhost";
$username = "root";
$password = "abcd";
$conn = mysqli_connect($servername, $username, $password);
...
?>
我正在使用:
- 服务器版本: Apache/2.4.12 (Ubuntu)
- PHP 5.6.11
- mysql Ver 14.14 发行版 5.6.28
我正在使用Eclipse Mars,并为Eclipse安装了PHP软件包(addin或任何名称)。然后我创建了一个 php 项目并将我的 php 文件添加到项目中,并作为 php cli 应用程序运行,但我在 Eclipse 控制台中收到以下错误,
PHP Fatal error: Call to undefined function mysqli_connect()
但是,当我从终端运行完全相同的脚本时,我没有收到任何错误,例如:
php machine_db.php
我还看到在我的Eclipse项目资源管理器中有一个包含mysqli类的PHP语言库。
我想你忘记了数据库名称:
$servername = "localhost";
$username = "root";
$password = "abcd";
$db_name = "my-db";
$conn = mysqli_connect($servername, $username, $password, $db_name);
您也可以使用
$conn = new mysqli($servername, $username, $password, $db_name);
文档:http://php.net/manual/fr/mysqli.construct.php
同时尝试安装 php5-mysqli
sudo apt-get update
sudo apt-get install php5-mysql php5-mysqli
sudo service apache2 restart
不要忘记在/etc/php5/apache2/php 中取消注释这一行.ini
extension=php_mysql.so
extension=php_mysqli.so
不要忘记重新启动 apache 服务器
sudo service apache2 restart
我刚刚意识到,如果在日食中我选中"use system default php.ini
"window->preferences->php->phpexecutables
,它将神奇地工作。
有谁知道什么是"系统默认php.ini"?
我做了一个快速$php --ini
,它返回:
Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File: /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed: /etc/php5/cli/conf.d/05-opcache.ini,
/etc/php5/cli/conf.d/10-mysqlnd.ini,
/etc/php5/cli/conf.d/10-pdo.ini,
/etc/php5/cli/conf.d/20-json.ini,
/etc/php5/cli/conf.d/20-mysql.ini,
/etc/php5/cli/conf.d/20-mysqli.ini,
/etc/php5/cli/conf.d/20-pdo_mysql.ini,
/etc/php5/cli/conf.d/20-readline.ini