Php Can';不能从编码创建数据库,但可以从cpanel创建
数据库test\u new\u 1可以直接从cpanel为用户创建testcom,但不能通过php创建。另一台服务器工作正常,唯一的区别是该服务器中的用户名和数据库前缀相同 错误显示:Php Can';不能从编码创建数据库,但可以从cpanel创建,php,mysqli,cpanel,Php,Mysqli,Cpanel,数据库test\u new\u 1可以直接从cpanel为用户创建testcom,但不能通过php创建。另一台服务器工作正常,唯一的区别是该服务器中的用户名和数据库前缀相同 错误显示: Error creating database: Access denied for user 'testcom'@'localhost' to database 'test_new_1' PHP // Create connection $conn = mysqli_connect('localhost',
Error creating database: Access denied for user 'testcom'@'localhost' to database 'test_new_1'
PHP
// Create connection
$conn = mysqli_connect('localhost', 'testcom', '123456');
// Check connection
if (!$conn)
{
die("Connection failed: " . mysqli_connect_error());
}
// Create database
$sql = "CREATE DATABASE IF NOT EXISTS test_new_1";
if (mysqli_query($conn, $sql))
{
echo "Database created successfully";
}
else
{
echo "Error creating database: " . mysqli_error($conn);
}
cPanel不允许您使用MySQL函数直接从中创建数据库。您需要使用cPanel提供给您的API: 从下载
xmlapi.php
,然后使用它:
<?php
include("xmlapi.php");
$db_host = 'yourdomain.com';
$cpaneluser = 'your cpanel username';
$cpanelpass = 'your cpanel password';
$databasename = 'testdb';
$databaseuser = 'test'; // Warning: in most of cases this can't be longer than 8 characters
$databasepass = 'dbpass'; // Warning: be sure the password is strong enough, else the CPanel will reject it
$xmlapi = new xmlapi($db_host);
$xmlapi->password_auth("".$cpaneluser."","".$cpanelpass."");
$xmlapi->set_port(2082);
$xmlapi->set_debug(1);//output actions in the error log 1 for true and 0 false
$xmlapi->set_output('array');//set this for browser output
//create database
$createdb = $xmlapi->api1_query($cpaneluser, "Mysql", "adddb", array($databasename));
//create user
$usr = $xmlapi->api1_query($cpaneluser, "Mysql", "adduser", array($databaseuser, $databasepass));
//add user
$addusr = $xmlapi->api1_query($cpaneluser, "Mysql", "adduserdb", array("".$cpaneluser."_".$databasename."", "".$cpaneluser."_".$databaseuser."", 'all'));
?>
在这种情况下,它也不允许从cpanel创建。但是这里可以创建从cpanel.grant访问用户testcomgeived access,然后所有其他项目数据库都显示在这个用户phpmyadmin中,我已经尝试了grant通配符,它没有执行显示错误。