SQL语法错误; [关闭]

hi i am getting this error though i tried to change the new to i am stil getting this problem can anyone tell me what should i do. I have completely changed the page also database but still same error.

error>

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''calendar_admin' WHERE teacher_id='ipcst123' and password='a141c47927929bc2d1fb6' at line 1

my code >

<?php
$username=$_POST['teacherId'];
$password=$_POST['password'];
$password=md5($password);
 try {
 $bdd = new PDO('mysql:host=localhost;dbname=XXX', 'XXX', 'XXX');
 } catch(Exception $e) {
  exit('Unable to connect to database.');
 }


$query ="SELECT * FROM 'calendar_admin' WHERE teacher_id="."'".$username."' and password="."'".$password."' ";
 $resultat = $bdd->query($query) or die(print_r($bdd->errorInfo()));
 $res = $resultat->fetchAll(PDO::FETCH_ASSOC);


foreach($res as $result){
$pass=md5($password);
$user=$result["teacher_id"];

if ($pass==$result["password"]&& $username == $user ){
echo "login Success";
session_start();
$_SESSION['teacher_id'] = $username;
header('Location:/addEvents.php');
}else{

    header('Location:/login.php');
    //echo "Incorrect Password";
}
}

You should use backticks instead of single quotes :

$query ="SELECT * FROM `calendar_admin` WHERE teacher_id='".$username."' and `password`='".$password."' ";

or just remove them

$query ="SELECT * FROM calendar_admin WHERE teacher_id='".$username."' and `password`='".$password."' ";

And since you use PDO, you should bind parameters, but not concatenate them into the query:

$query ="SELECT * FROM calendar_admin WHERE teacher_id= :teacher and `password`= :password ";

$sth = $bdd->prepare($query);
$sth->bindParam(':teacher',$username);
$sth->bindParam(':password',$password);
$sth->execute();
$res = $sth->fetchAll(PDO::FETCH_ASSOC);

Around column and table names has to be backticks, not single quotes. O rnothing if the names aren't from reserved words (or spaces, or hyphens, or anything else that MySQL will scream about, @Fred -ii- in comments below):

`calendar_admin`

The full query:

$query ="SELECT * 
         FROM `calendar_admin` 
         WHERE teacher_id = '" . $username . "' AND                    
               password = '" . $password . "'";

Don't forget to escape data from user inputs.

$query = "
SELECT * 
  FROM calendar_admin 
 WHERE teacher_id = '$username'
   AND password = '$password';
";

Next, take a look at prepared statements