首页 > 解决方案 > 为什么这个 php SELECT FROM 查询不起作用?

问题描述

这是我的简单php代码:

<!DOCTYPE html>
<html>
<body>

<?php
   $servername = "localhost";
   $username = "root";
   $password = "********";  //hiding my password
   $dbname = "course";
   $conn = new mysqli($servername, $username, $password, $dbname);
   // Check connection
   if ($conn->connect_error) {
     die("Connection failed: " . $conn->connect_error);
   }

   $sql = "SELECT name FROM tutors";
   $result = $conn->query($sql);
   if( $result === true ) {
     echo "good";
   } else {
     echo "Error: " . $sql . "<br>" . $conn->error;
   }

   while($row = $result->fetch_assoc()) {
     echo $row["name"];
   }

?>
</body>
</html>

在我的名为“course”的数据库中,我有一个名为“tutors”的表,其中有一列名为“name”。我在该表中有两个条目,分别名为“深思”和“比利牛斯”。

但是,当此代码运行时,唯一打印出来的是:

错误:从导师中选择姓名

它应该简单地打印出我之前提到的两个名称。

有谁知道为什么会这样?我知道我的表中有两个条目!

标签: php

解决方案


我认为“名称”这个词是 MySQL 的保留字。将您的查询变量包装在一个波浪号像这样的反引号:

$sql = "SELECT `name` FROM `tutors`";

这有助于从 MySQL 中转义这些值,以为您正在尝试引用内置变量。


推荐阅读