Php 如何修复:警告:mysqli\u get\u server\u info()希望参数1为mysqli?
我的PHP非常差,我正在尝试在我的主机上安装arfoo.com。我对mysql和mysqli有一些问题,现在已经解决了 但现在我得到了这个错误: 警告:mysqli_get_server_info()希望参数1是mysqli,第47行的/home/***/install/step4.php中给出的字符串 对于以下代码:Php 如何修复:警告:mysqli\u get\u server\u info()希望参数1为mysqli?,php,mysql,mysqli,Php,Mysql,Mysqli,我的PHP非常差,我正在尝试在我的主机上安装arfoo.com。我对mysql和mysqli有一些问题,现在已经解决了 但现在我得到了这个错误: 警告:mysqli_get_server_info()希望参数1是mysqli,第47行的/home/***/install/step4.php中给出的字符串 对于以下代码: <?php /** * Arfooo * * @package Arfooo * @copyright Copyright (c) Arfooo Annu
<?php
/**
* Arfooo
*
* @package Arfooo
* @copyright Copyright (c) Arfooo Annuaire (fr) and Arfooo Directory (en)
* by Guillaume Hocine (c) 2007 - 2010
* http://www.arfooo.com/ (fr) and http://www.arfooo.net/ (en)
* @author Guillaume Hocine & Adrian Galewski
* @license http://creativecommons.org/licenses/by/2.0/fr/ Creative Commons
*/
session_start();
error_reporting(E_ALL);
require_once('languages/' . $_SESSION['selectedLanguage'] . '.php');
$chemin_includes_header = 'includes/';
include_once($chemin_includes_header.'header.php');
require_once("dbfunctions.php");
require_once("createdb.php");
function createDbConfig($dbHost, $dbUser, $dbPass, $dbName, $dbPrefix)
{
$dbConfig['DB_HOST'] = $dbHost;
$dbConfig['DB_USER'] = $dbUser;
$dbConfig['DB_PASS'] = $dbPass;
$dbConfig['DB_NAME'] = $dbName;
$dbConfig['DB_PREFIX'] = $dbPrefix;
$dbConfig['DB_INSTALLED'] = true;
$data = "<?php\n \$dbConfig = " . var_export($dbConfig, true). ";\n ?>";
file_put_contents("../config/db.php", $data);
}
$_SESSION['mysqlServer'] = $_POST['mysqlServer'];
$_SESSION['mysqlUser'] = $_POST['mysqlUser'];
$_SESSION['mysqlPassword'] = $_POST['mysqlPassword'];
$_SESSION['mysqlDatabaseName'] = $_POST['mysqlDatabaseName'];
$_SESSION['mysqlTablesPrefix'] = $_POST['mysqlTablesPrefix'];
dbConnect($_SESSION['mysqlServer'],
$_SESSION['mysqlUser'],
$_SESSION['mysqlPassword'],
$_SESSION['mysqlDatabaseName']
);
$mysqlVersion = mysqli_get_server_info();
$mysqlVersionCorrect = version_compare($mysqlVersion, "4.1", ">=");
if($mysqlVersionCorrect)
{
createDbConfig($_POST['mysqlServer'],
$_POST['mysqlUser'],
$_POST['mysqlPassword'],
$_POST['mysqlDatabaseName'],
$_POST['mysqlTablesPrefix']);
$tablesList = createDbTables($_POST['mysqlTablesPrefix'],
$_SESSION['siteRootUrl'],
$_SESSION['selectedLanguage'],
$_SESSION['urlRewriting']
);
}
else
{
$tablesList = array();
}
?>
非常感谢您的帮助 如果要使用过程样式,应该将
mysqli\u connect()
返回的对象作为参数传递给mysqli\u get\u server\u info()
或者使用OO样式:
更多信息请访问
编辑:
函数应该返回mysqli对象,尝试添加return$conn代码>结尾,如下所示:
function dbConnect($server, $user, $pass, $dbName)
{
/* install database with prefixed tables */
$conn = mysqli_connect($server, $user, $pass, $dbName);
//mysql_connect($server, $user, $pass) or die('could not connect to mysql');;
mysqli_query($conn, 'CREATE TEMPORARY TABLE table');
//mysqli_query($dbName, 'CREATE TEMPORARY TABLE `table`');
//mysql_query('create database IF NOT EXISTS ' . $dbName);
mysqli_select_db($conn, $dbName) or die('could not select database');
return $conn;
}
如果要使用过程样式,应将mysqli\u connect()
返回的对象作为参数传递给mysqli\u get\u server\u info()
或者使用OO样式:
更多信息请访问
编辑:
函数应该返回mysqli对象,尝试添加return$conn代码>结尾,如下所示:
function dbConnect($server, $user, $pass, $dbName)
{
/* install database with prefixed tables */
$conn = mysqli_connect($server, $user, $pass, $dbName);
//mysql_connect($server, $user, $pass) or die('could not connect to mysql');;
mysqli_query($conn, 'CREATE TEMPORARY TABLE table');
//mysqli_query($dbName, 'CREATE TEMPORARY TABLE `table`');
//mysql_query('create database IF NOT EXISTS ' . $dbName);
mysqli_select_db($conn, $dbName) or die('could not select database');
return $conn;
}
作为一个傻瓜,我试着这样做:$mysqlConnect=dbConnect($_会话['mysqlServer'],$_会话['mysqlUser'],$_会话['mysqlPassword'],$_会话['mysqlDatabaseName'])$mysqlVersion=mysqli\u get\u server\u info($mysqlConnect);但是它不起作用。你能给我看一下你的dbConnect()
函数吗(编辑你的问题以添加它)?如果你能给我一个复制和粘贴的代码,我将不胜感激。我真的对PHP一无所知:(我需要知道dbConnect()
返回什么,试着在包含的文件(比如dbfunctions.PHP或createdb.PHP)中找到它。添加return$conn;
在dbConnect()
函数的末尾,它应该可以工作。作为一个傻瓜,我试着这样做:$mysqlConnect=dbConnect($\u SESSION['mysqlServer'],$会话['mysqlUser'],$会话['mysqlPassword'],$会话['mysqlDatabaseName'];$mysqlVersion=mysqli\u获取服务器信息($mysqlConnect);但它不起作用。你能给我看看你的dbConnect()
函数吗(编辑你的问题以添加它)?如果你能给我一个复制粘贴的代码,我将不胜感激。我真的对PHP一无所知:(我需要知道dbConnect()
返回什么,试着在包含的文件(如dbfunctions.PHP或createdb.PHP)中找到它。在dbConnect()
函数的末尾添加return$conn;
,它应该可以工作。
$mysqlConnect = new mysqli("localhost", "my_user", "my_password");
$mysqlVersion = $mysqlConnect->server_info;
function dbConnect($server, $user, $pass, $dbName)
{
/* install database with prefixed tables */
$conn = mysqli_connect($server, $user, $pass, $dbName);
//mysql_connect($server, $user, $pass) or die('could not connect to mysql');;
mysqli_query($conn, 'CREATE TEMPORARY TABLE table');
//mysqli_query($dbName, 'CREATE TEMPORARY TABLE `table`');
//mysql_query('create database IF NOT EXISTS ' . $dbName);
mysqli_select_db($conn, $dbName) or die('could not select database');
return $conn;
}