如果这看起来很简单,很抱歉。我刚开始学习PHP和MySQL,在过去的两天里我一直被这个问题困扰着。
实际上,我正在编写一个用户注册/登录系统,并且在选择将存储用户凭据的数据库时(显然)遇到了问题。
我的代码精简到了最基本的部分。
<?php
$servername = "localhost";
$username = "qtesting";
$password = "test";
$database = "qtesting";
$mysqli = mysqli_connect($servername, $username, $password) or die('Error connecting to MySQL server.');;
if($mysqli->connect_errno > 0){
die('Unable to connect to database [' . $mysqli->connect_error . ']');
}
$result=mysqli_query("USE qtesting");
echo $result;如果我允许我的完整代码运行,当我试图运行任何进一步的查询时,它返回"No database selected“。因此,我将代码逐行缩减为您在上面看到的内容,并打开查询日志来查看发生了什么。
根据我的查询日志,已成功打开到服务器的连接,但USE查询似乎没有运行。为了清楚起见,我创建了$result变量,并要求PHP回显$result以进行调试。
另外,您可能注意到我定义了一个$database变量。在通过mysqli_connect($servername、$username、$password、$database)建立连接时,我也尝试选择数据库
有谁有什么想法吗?
发布于 2016-12-31 21:27:20
您应该在执行sql之前选择您的数据库。
<?php
$servername = "localhost";
$username = "qtesting";
$password = "test";
$database = "qtesting";
$mysqli = mysqli_connect($servername, $username, $password) or die('Error connecting to MySQL server.');;
if($mysqli->connect_errno > 0){
die('Unable to connect to database [' . $mysqli->connect_error . ']');
}
$mysqli->select_db($database);
//write you insert, update, delete or select发布于 2016-12-31 21:29:28
在connection上选择数据库
调整mysqli_connect字符串以指定数据库选择,添加第四个参数:
$mysqli = mysqli_connect($servername, $username, $password, $database) or die('Error connecting to MySQL server.');http://php.net/manual/en/function.mysqli-connect.php
关于MySQL user credentials的说明
您说的是"...selecting存储用户凭证的数据库“。我假设您正在谈论您自己的具有用户和密码的表,对吗?测试连接用户名和密码(qtesting和MySQL )供脚本连接,并在内部存储在MySQL的系统表中。
发布于 2016-12-31 21:31:29
实际上,您已经建立了连接,但没有选择数据库。将以下代码行粘贴到if语句后面
mysqli_select_db($mysqli,$database);https://stackoverflow.com/questions/41408662
复制相似问题