显示mysql数据库表时出现php错误
每次尝试使用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
警告: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`");