用户''@ localhost'拒绝访问数据库'waqas'codeigniter

我想使用 CodeIgniter </ code>创建数据库</ code>。 我编写了这段代码。</ p>

  $ template ='application / views / install / db / dbwrite.php'; 
$ template_path = set_realpath($ template);
$ output_path ='application / config / database.php';
$ database_file = file_get_contents($ template_path);
$ new = str_replace(“%HOSTNAME%”,$ _ POST ['dbhost'],$ database_file); \ n $ new = str_replace(“%USERNAME%”,$ _ POST ['username'],$ new);
$ new = str_replace(“%PASSWORD%”,$ _ POST ['password'],$ new); \ n $ new = str_replace(“%DATABASE%”,$ _ POST ['dbname'],$ new);
$ dbName = $ _POST ['dbname'];
$ sql =“CREATE DATABASE IF NOT NOT EXISTS $ dbName “;
$ this-&gt; db-&gt; query($ sql);
$ handle = fopen($ output_path,'w +');
fwrite($ handle,$ new);

</ code> </ pre>

此处 $ _ POST ['username'] </ code>的值为 root </ code>和 $ _ POST ['password'] </ code>是''</ code>。 但是 $ sql =“CREATE DATABASE IF NOT EXISTS $ dbName”; </ code>它给了我那个错误。 mysql默认用户名</ code>是 root </ code>,密码</ code>是''</ code>。</ p>

< pre> 错误号码:1044

用户''@ localhost'拒绝访问数据库'waqas'

创建数据库如果不是EXISTS waqas

Filename:D:/ xampp / htdocs / ci_api / system / database / DB_driver.php

Line Number:691
</ code> </ pre>
</ div>

展开原文

原文

I want to create a database using CodeIgniter. I have written this code.

 $template = 'application/views/install/db/dbwrite.php';
 $template_path =  set_realpath($template);
 $output_path   = 'application/config/database.php';
 $database_file = file_get_contents($template_path);
 $new  = str_replace("%HOSTNAME%",$_POST['dbhost'],$database_file);
 $new  = str_replace("%USERNAME%",$_POST['username'],$new);
 $new  = str_replace("%PASSWORD%",$_POST['password'],$new);
 $new  = str_replace("%DATABASE%",$_POST['dbname'],$new);
 $dbName = $_POST['dbname'];
 $sql = "CREATE DATABASE IF NOT EXISTS $dbName";
 $this->db->query($sql);
 $handle = fopen($output_path,'w+');
 fwrite($handle,$new); 

here the value of $_POST['username'] is root and $_POST['password'] is ''. but the $sql = "CREATE DATABASE IF NOT EXISTS $dbName"; it gives me that error. and also mysql default username is root and password is ''.

Error Number: 1044

Access denied for user ''@'localhost' to database 'waqas'

CREATE DATABASE IF NOT EXISTS waqas

Filename: D:/xampp/htdocs/ci_api/system/database/DB_driver.php

Line Number: 691

duanhuan3012
duanhuan3012 你永远不会希望这个公开,因为你不应该像你一样使用$_POST。数据库用户名和密码应该绝对是硬编码的。
一年多之前 回复
duan19780629
duan19780629 请包含您在代码中引用的文件内容,这些文件不属于CodeIgniter库。两个调试建议;1)硬编码你从POST或str_replace'-ing获得的任何变量(即$db['dbname']['username']=“root”;)。你得到它后工作2)var_dump($new)和var_dump($dbName),以确保它与1)中的工作相同
一年多之前 回复
douxuanling6523
douxuanling6523 我已经更新了我的问题。请检讨一下。
一年多之前 回复
duanhuang4306
duanhuang4306 您需要与用户一起访问数据库。''in''''localhost'表示没有用户设置。在执行查询之前,您可能还需要设置密码
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐