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,这不是对象,因此您无法查看其成员。要获得更合理的错误消息,请始终检查查询结果,如果结果为假,请打印合理的错误消息。非常感谢!很高兴我能帮忙。如果你觉得对你的问题满意,就选择一个答案。否则,发布答案并接受。