SQL查询中包含变量($ lecno)时出错

时间:2018-07-01 15:16:48

标签: php mysql mysqli phpmyadmin mysql-error-1064

SQL Database

1)查看我的SQL数据库的图像

2)我试图根据周数和讲座号显示讲座链接,标题和说明

3)这是我的代码

<?php
$course_id=$_GET['course'];
$weekno=$_GET['week'];
$lecno=$_GET['lecno'];

$query=mysqli_query($con,"select * from week$weekno where 
course_id='$course_id'");
$row_query=mysqli_fetch_array($query);
$title=$row_query['lectitle$lecno'];

?>

4)一切都很好,但是由于$ row_query ['lectitle $ lecno']给出了错误,我得到了错误。未定义索引lectitle $ lecno 当我从_GET获得演讲号时,我将显示lectitle(i),leclink(i),其中i代表演讲号。

如何编写此查询?

1 个答案:

答案 0 :(得分:0)

在字符串中任意使用变量通常是个坏习惯,例如

"select * from week$weekno where course_id='$course_id'"

应该更像(只是示例,还有其他问题,请参见下文)

"select * from week" . intval($weekno) . " where course_id='{$course_id}'"

尤其是,这使您陷入不小心用单引号引起的陷阱,这根本行不通。更改

$title=$row_query['lectitle$lecno'];

$title = $row_query['lectitle' . $lecno];

也:清理输入很重要。对于查询,您可能需要使用准备好的语句:http://php.net/manual/en/mysqli.prepare.php