PHP中的SQL数据库连接成功,但我无法查询它

PHP中的SQL数据库连接成功,但我无法查询它,php,mysql,sql,sql-server,mysqli,Php,Mysql,Sql,Sql Server,Mysqli,这是代码。就像我说的,它可以成功连接,但代码无法成功查询。奇怪的是,如果我复制并粘贴相同的代码(看起来完全相同),它就会工作。这毫无意义。我找不到他们的代码和我的代码之间的任何区别,除了他们分隔东西的方式和我分隔东西的方式。以下是他们的代码: <?php $servername = "localhost"; $username = "user"; $password = "pass"; $dbname = "test"; $tablename = "mapcoords"

这是代码。就像我说的,它可以成功连接,但代码无法成功查询。奇怪的是,如果我复制并粘贴相同的代码(看起来完全相同),它就会工作。这毫无意义。我找不到他们的代码和我的代码之间的任何区别,除了他们分隔东西的方式和我分隔东西的方式。以下是他们的代码:

<?php
  $servername = "localhost";
  $username = "user";
  $password = "pass";
  $dbname = "test";
  $tablename = "mapcoords";

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

  if ($conn->connect_error)
  {
    echo "Failure";
    die("Connection failed: " . $conn->connect_error);
  }

  echo "Connected successfully";
  $sql = "SELECT (lat, lng) FROM mapcoords";
  $result = $conn->query($sql);

    while($row = $result->fetch_assoc())
    {
      echo "ok";
    }



  $conn->close();

?>

问题在于此查询:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT (lat, lng) FROM mapcoords";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo $row["lat"]. " " . $row["lng"] . "<br>";
    }
} else {
    echo "0 results";
}
$conn->close();
?>
返回以下错误:

[21000][1241]操作数应包含1列

您必须将查询更改为

SELECT (lat, lng) FROM mapcoords

问题在于此查询:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT (lat, lng) FROM mapcoords";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo $row["lat"]. " " . $row["lng"] . "<br>";
    }
} else {
    echo "0 results";
}
$conn->close();
?>
返回以下错误:

[21000][1241]操作数应包含1列

您必须将查询更改为

SELECT (lat, lng) FROM mapcoords

$sql=从mapcoords选择lat、lng;为什么是括号?这打破了你的疑问。如果实现了正确的错误处理并启用了报告错误\u reportingE\u ALL,那么您只是假设查询是成功的;你可能也会明白为什么-代码无法成功查询-那么它会做什么?怎么了@Qirel那么为什么即使我使用相同的$sql语句(包括括号),w3 schools代码也能工作?@david我收到一个错误,说我试图获取非-object@qirel你是对的。。。是括号。我没有意识到不能在SQL中对这样的事情进行分组。非常感谢你的帮助!另外,感谢您告诉我有关错误报告的信息,这使故障排除更加容易。$sql=从mapcoords选择lat,lng;为什么是括号?这打破了你的疑问。如果实现了正确的错误处理并启用了报告错误\u reportingE\u ALL,那么您只是假设查询是成功的;你可能也会明白为什么-代码无法成功查询-那么它会做什么?怎么了@Qirel那么为什么即使我使用相同的$sql语句(包括括号),w3 schools代码也能工作?@david我收到一个错误,说我试图获取非-object@qirel你是对的。。。是括号。我没有意识到不能在SQL中对这样的事情进行分组。非常感谢你的帮助!另外,感谢您告诉我有关错误报告的信息,这使故障排除变得更容易。下面您了解非对象的原因是,当查询失败时,结果将变为false,这不是对象,因此您无法查看其成员。要获得更合理的错误消息,请始终检查查询结果,如果结果为假,请打印合理的错误消息。非常感谢!很高兴我能帮忙。如果你觉得对你的问题满意,就选择一个答案。否则,请发布答案并接受。下面关于非对象的原因是,当查询失败时,结果将变为false,这不是对象,因此您无法查看其成员。要获得更合理的错误消息,请始终检查查询结果,如果结果为假,请打印合理的错误消息。非常感谢!很高兴我能帮忙。如果你觉得对你的问题满意,就选择一个答案。否则,发布答案并接受。