显示mysql数据库表时出现php错误

显示mysql数据库表时出现php错误,php,sql,Php,Sql,每次尝试使用php连接到数据库时,我总是会遇到以下错误:警告:mysqli_fetch_array()希望参数1是mysqli_result,布尔值在第258行的/homepages/12/d441172468/htdocs/Organizer/dashboard/index.php中给出?我的代码是 $email = 'redacted@me.com_classes'; echo $email; $result = m

每次尝试使用php连接到数据库时,我总是会遇到以下错误:
警告:mysqli_fetch_array()希望参数1是mysqli_result,布尔值在第258行的/homepages/12/d441172468/htdocs/Organizer/dashboard/index.php中给出?我的代码是

            $email = 'redacted@me.com_classes';

            echo $email;

            $result = mysqli_query($con,"SELECT * FROM $email");

            $classcount = 1;

            while($row = mysqli_fetch_array($result))
              {

              $period = $row['period'];
              $teacher = $row['teacher'];
              $subject = $row['subject'];
              $subjecto = strtolower($subject);
              $subjecto = str_replace(' ', '', $subjecto);
              $grade = $row['grade'];

              echo "<li id='button" . $classcount . "' onclick='" . $subjecto . "(),homework" . $classcount . "()'>" . $classcount . ". " . $subject . "-" . $grade . "</li>\n";

              $classcount += 1;

              }
$email=”redacted@me.com_classes';
echo$电子邮件;
$result=mysqli_查询($con,“从$email中选择*);
$classcount=1;
while($row=mysqli\u fetch\u数组($result))
{
$period=$row['period'];
$teacher=$row['teacher'];
$subject=$row['subject'];
$subjecto=strtolower($subject);
$subjecto=str_替换(“”,,$subjecto);
$grade=$row['grade'];
echo“
  • “$classcount.”“.$subject.”-“$grade.”
  • \n”; $classcount+=1; }

    $email
    变量在回显时工作正常。第128行是
    而($row=mysqli\u fetch\u array($result))
    部分
    ASCII
    中允许使用表名:

    奇怪的是,您已经手动添加了带有字符串
    @
    的表了吗。我想这不能作为表名吗

    跳过下面的内容


    您的查询无效,请更改代码,例如:

    mysqli_query($con,"SELECT * FROM TABLE_NAME WHERE 'email' = $email");
    
    表格\u名称
    更改为表格名称。 将
    email
    更改为表\u name上的email列名称

    你是mysql注入的受害者,所以不检查实体和特殊字符


    如果您的$email值是表_名称,则应限制为字符

    如果
    $email
    的值实际上是您的表名,则需要对其进行引用,因为它包含未引用的字符(
    @
    ):


    请注意,您需要在mysql中引用带有反勾号的表名和列名。

    您正在传递
    $email
    作为表名。当然,您的意思是通过
    mysqli\u real\u escape\u string()转义
    mysqli\u real\u escape\u string()后,从您的表中选择*,其中email='$email'
    ,您确定$con工作吗?
    的值是我的表名,我确定我的
    $con
    工作您必须进行错误检查<代码>$result=mysqli_查询(…);如果(!$result)回显mysqli_错误();否则//好的,做你的事。
    你的表名就是电子邮件地址
    redacted@me.com_classes
    ?真的吗???但是我的表名是
    $email
    的值你的表是通过电子邮件命名的?!您的表名是表名。不是表名中的列。是的,这很奇怪,但我需要它!我在
    中引用了它
    instead@ThomasLai否,如果是表名,则需要反勾号,请参阅我链接到的手册页:标识符引号字符是反勾号(“`”)
    mysqli_query($con,"SELECT * FROM TABLE_NAME WHERE 'email' = $email");
    
     $result = mysqli_query($con,"SELECT * FROM `$email`");