【发布时间】:2020-04-14 17:00:23
【问题描述】:
我设置了 WAMP,所有服务都在运行。我能够从 Visual Studio Code 编辑器和本地主机上的 CakePHP 环境连接到现有数据库“mysql”。
添加数据库时,无论是通过 MySQL 控制台还是通过 MyPHPAdmin,我都会收到以下错误..
警告:mysqli_connect(): (HY000/1049): C:\wamp64\www\wamp_projects\WAMP Test\db_connection.php 中的未知数据库“testmysqlniels”
添加新用户并授予该用户所有权限时,我收到以下错误消息。我确信这个用户拥有所有权限,所以肯定也有阅读权限。
警告:mysqli_connect(): (HY000/1045): Access denied for user 'niels'@'localhost' (using password: YES) in C:\wamp64\www\wamp_projects\WAMP Test\db_connection.php
似乎 MyPHPAdmin 中的系统(我也通过 MySQL 控制台连接到该系统)与我在草图中和通过 CakePHP 调用的系统不同。我认为错误在于我的项目文件夹的虚拟主机设置中。
我的草图位于本地主机上,位于 YOURVIRTUALHOST ‘wampprojects’ 下。 C:\wamp64\www\wamp_projects\WAMP 测试(路径)
代码适用于现有表,不适用于新表..
我的代码:
<?php
$dbServerName = "wampprojects";
$dbUserName = "root";
$dbPassword = "";
$dbName = "testmysqlniels";
// need to use mysqli_connect, is improved version (Improved)
$conn = mysqli_connect($dbServerName, $dbUserName, $dbPassword, $dbName);
$search_query = "SELECT * FROM help_category";
$search_query_cost = "SELECT * FROM tables_priv";
$search_sports = "SELECT * FROM sports_tabel";
$result = $conn->query($search_query);
$result_priv = $conn->query($search_sports);
print_r($result_priv);
if($result->num_rows > 0){
while($row = $result->fetch_assoc()) {
echo "id: " . $row["name"]. " - Name <br>";
}
}
$conn->close();
?>
我的数据库架构显示存在数据库和表..
总结一下,我可以调用所有自动包含的 DB/ 表,没有添加任何其他内容。看来我的参考系统有问题..
我已经阅读了一些关于设置“httpd-vhosts.conf 文件”的文章,但没有任何结论..
这是我文件的当前配置:
# Virtual Hosts
#
<VirtualHost *:80>
ServerName localhost
ServerAlias localhost
DocumentRoot "${INSTALL_DIR}/www"
<Directory "${INSTALL_DIR}/www/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require local
</Directory>
</VirtualHost>
#
<VirtualHost *:80>
ServerName wampprojects
DocumentRoot "c:/wamp64/www/wamp_projects"
<Directory "c:/wamp64/www/wamp_projects/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require local
</Directory>
</VirtualHost>
我刚刚读到的另一件事是,我的 PC 上可能已经运行了一个 Apache 的副本,这会混淆路由机制。..
我做错了什么?
【问题讨论】:
-
关于无关说明:学习 PDO 而不是 mysqli。 mysqli 更难使用,选项更少。
-
我不太确定您是否需要本地主机。如果您删除它并重新启动会发生什么?因为我认为您不能在虚拟主机中拥有虚拟主机(假设 ${INSTALL_DIR}/www/ 与 c:/wamp64/www 相同)
-
谢谢你的建议,我去看看PDO。我在“httpd-vhosts”文件中取出了 localhost 选项。结果相同,但消除了 vhost 中的 vhost 风险,非常感谢!
-
似乎当我删除 localhost 部分时,我无法访问 WAMP 服务器起始页。所以我宁愿不这样做。将尝试移动到另一个文件夹..
-
1.文件夹名称中的空格绝不是一个好主意。 2. $dbServerName = "本地主机";
标签: php mysql virtualhost wampserver