Как получить данные в PHP с MySQLi?

Я пробовал несколько раз, но не могу добиться правильного синтаксиса – согласно PHP 5.5.12 – для извлечения одной или нескольких строк из моей базы данных.

session_start(); $con=mysqli_connect("localhost","root","","doortolearn"); if (!$con) { echo "Could not connect to DBMS"; } $query="select * from teacher where tremail='$_POST[email]' and trpasssword='$_POST[password]'"; $result=mysqli_query($con,$query); $flag=FALSE; while ($row=mysqli_fetch_array($result,MYSQLI_BOTH)) { $_SESSION['email']=$row['email']; $flag=TRUE; } 

Во-первых, у вас нет одиночных кавычек ' около $_POST[password] :

 $query = "SELECT * FROM teacher WHERE tremail='". $_POST['email'] ."' and trpasssword='" . $_POST['password'] . "'"; $result = mysqli_query($con, $query) or die(mysqli_error($con)); $flag = FALSE; while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) { $_SESSION['email'] = $row['email']; $flag = TRUE; } 

Но прошло ли это, у вас даже есть подключение к базе данных MySQL здесь? Я вижу $con но это действительно работает?

Кроме того, проверьте, есть ли ошибки, добавив or die(mysql_error($con)) в mysqli_query($con, $query) .

Кроме того, у вас есть значение $_SESSION , но вы даже session_start в начале вашего скрипта?

Но я также рекомендую вам использовать mysqli_stmt_bind_param для ваших значений, чтобы избежать их, если вы не собираетесь выполнять базовую проверку:

 $query = "SELECT * FROM teacher WHERE tremail=? and trpasssword=?"; mysqli_stmt_bind_param($query, 'ss', $_POST['email'], $_POST['password']); $result = mysqli_query($con, $query) or die(mysqli_error($con)); $flag = FALSE; while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) { $_SESSION['email'] = $row['email']; $flag = TRUE; } 
 $r =$mysqli->query("select * from users"); while ( $row = $r->fetch_assoc() ) { ?> <tr> <td><?php echo $i++; ?></td> <td><?php echo $row['name']; ?></td> <td><?php echo $row['pwd']; ?></td> </tr> <?php } ?>