Php MySQL数据库连接正常,但不会执行查询

Php MySQL数据库连接正常,但不会执行查询,php,mysql,Php,Mysql,我有这个PHP代码 <?php $servername="localhost"; $username="b6_17093244"; $password="password1"; $dbName="b6_17093244_math"; $conn = new mysqli($servername, $username, $password, $dbName); if($conn) echo "ok<br>"; else echo "not ok<br>"; $

我有这个PHP代码

<?php
$servername="localhost";
$username="b6_17093244";
$password="password1";
$dbName="b6_17093244_math";
$conn = new mysqli($servername, $username, $password, $dbName);
if($conn)
  echo "ok<br>";
else echo "not ok<br>";
  $sql = "select username from user";
$result = mysqli_query($conn,$sql);
if($result)
  echo "ok result<br>";
else 
  echo "no result<br>";
?>
输出为:

嗯 没有结果

这是我数据库中的数据


试试这个并发布结果

<?php
$servername="localhost";
$username="b6_17093244";
$password="password1";
$dbName="b6_17093244_math";
$conn = new mysqli($servername, $username, $password, $dbName);
if($conn->connect_errno)
  echo "connect error". $conn->connect_error;
else 
   echo "not ok<br>";
$sql = "select `username` from `user`";
$result = mysqli_query($conn,$sql);
$conn->error();
echo "numof rows".$result->num_rows
if($result->num_rows>0)
  echo "ok result<br>";
else 
  echo "no result<br>";
?>
正如所指出的,user是一个保留字,但您应该能够用backticks封装user:

<?php
    $servername="localhost";
    $username="b6_17093244";
    $password="password1";
    $dbName="b6_17093244_math";

    $conn = new mysqli($servername, $username, $password, $dbName);

    echo ( $conn ? 'ok' : 'not ok' ) . '<br />';

    $sql = "select `username` from `user`;";

    $result = mysqli_query($conn,$sql);

    echo ( $result ? 'ok result' : 'no result' ) . '<br />';
?>

似乎您没有获取选定的对象

    if ($result = $mysqli->query($conn, $sql)) {
    echo "ok result<br>";
    while($obj = $result->fetch_object()){
       echo $obj->username . '<br/>';
    }
} 

因为你混合了MySQLi的两种不同用法

首先,使用基于类的对象连接到数据库。以及仅使用调用函数进行查询。而是这样做:

# Here changed new mysqli
# to mysqli_connect
$conn = mysqli_connect($servername, $username, $password, $dbName);

问题出在我的主机名上。应该是这样的:a7h1.byethost6.com,而不是localhost。托管站点中显示的示例是localhost,我遵循了它,但结果证明是错误的



感谢所有帮助过你的人

在not ok分支中打印sql错误消息,这样您就可以知道错误的原因,并可以在以后修复它们。Link vontains连接和查询错误示例代码:@Shadow它说没有这样的文件或目录用户是SQL方言中的保留字,因此表或列的名称不好。谢谢。我会改的问题解决了没有?试过了。数据库连接不成功。输出是:不正常,没有结果同样的事情发生在您的代码中。结果是数据库连接正常,没有结果。我使用的是byet.host的免费主机,可能是我的代码没有问题,但他们的系统有问题吗?你100%确定用户名、密码、主机和数据库的详细信息是正确的吗?主机不确定,但其余的我确定。我使用的是byet.host的免费主机,在他们的示例中,他们使用localhost作为主机名,所以我使用了错误的主机名。它应该是a7h1.byethost6.com,而不是localhost。谢谢你的帮助!!即使我没有获取对象,它也应该打印ok结果,但它甚至没有进入if语句。让我们来解决问题。使用了错误的主机名。它应该是a7h1.byethost6.com,而不是localhost。谢谢大家!@scaisEdge否否这导致服务器错误500如果将localhost更改为127.0.0,系统中是否运行mysql。我的系统中不存在mysql。我正在使用byet.host提供的免费网络托管。可以在这里查看页面。byehost中的服务器有问题,我想检查一下他们是否解决了问题。使用了错误的主机名。它应该是a7h1.byethost6.com,而不是localhost。非常感谢。
# Here changed new mysqli
# to mysqli_connect
$conn = mysqli_connect($servername, $username, $password, $dbName);