【问题标题】:Simple MySQL "USE" query does not return with any response using PHP [duplicate]使用 PHP 的简单 MySQL“USE”查询不返回任何响应 [重复]
【发布时间】:2016-12-31 13:21:09
【问题描述】:

抱歉,如果这看起来很简单。我刚开始使用 PHP 和 MySQL,过去 2 天我一直坚持使用它。

基本上,我正在编写一个用户注册/登录系统,但我在选择将存储用户凭据的数据库时遇到了问题。

我的代码精简到了基本要素。

<?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;

如果我允许我的完整代码运行,当我尝试运行任何进一步的查询时,它会返回“未选择数据库”。因此,我将代码逐行还原为您在上面看到的内容,并打开查询日志以查看发生了什么。

根据我的查询日志,已成功打开与服务器的连接,但 USE 查询似乎没有运行。为了澄清,我创建了 $result 变量并要求 PHP 回显 $result 以进行调试。

另外,您可能会注意到我定义了一个 $database 变量。我还尝试通过 mysqli_connect($servername, $username, $password, $database)

建立连接时选择数据库

有人有什么想法吗?

【问题讨论】:

  • 你应该这样做mysqli_query($mysqli,"USE qtesting");你没有指定mysqli连接
  • 感谢大家的帮助!效果很好。现在正在正确选择数据库
  • 请选择正确的答案,这样会显示一个绿色的勾号。这会将这个问题作为“已回答”结束。
  • 问题的状态是什么?如果给出的答案解决了问题,请考虑接受一个。

标签: php mysql


【解决方案1】:

你应该在执行你的sql之前选择你的数据库。

PHP Site

<?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

【讨论】:

    【解决方案2】:

    实际上你已经建立了连接但没有选择数据库。在 if 语句之后粘贴以下代码行

    mysqli_select_db($mysqli,$database);
    

    【讨论】:

      【解决方案3】:

      在连接时选择数据库

      调整你的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 用户凭据的注意事项

      您说“...选择将存储用户凭据的数据库。”我假设您正在谈论您自己的带有用户和密码的表,对吗? MySQL 连接用户名和密码(qtesting 和 test)供您的脚本连接,并在内部存储在 MySQL 的系统表中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-19
        • 1970-01-01
        • 2020-07-09
        • 2016-05-08
        • 2017-01-23
        • 1970-01-01
        相关资源
        最近更新 更多