Запрос MySQL не работает при использовании переменной php в where where

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

form.php

<!DOCTYPE html> <html lang="en"> <html> <head> <title>test</title> </head> <body> <form action="search.php" method="GET" id="form"> Name: <input type="text" name="name" > Age:<input type="text" name="age"> Search<input type="submit" name="submit" id="Search" Value="Search"> </form> </body> </html> 

connect.php

  <?php $connect = mysql_connect('localhost','$user','$password'); if(!$connect){ die('Could not connect'.mysql_error() ); } $db_selected = mysql_select_db('test'); if(!$db_selected){ die('wrong'.mysql_error() ); } ?> 

search.php

  <?php include("includes/connect.php"); $name=$_GET['name']; echo $name; $query = "SELECT * FROM `cats` WHERE name='\$name'"; $results= mysql_query($query); if (!empty($results)){ echo "query successful" ; exit; } $row=mysql_fetch_assoc($results); echo "Age:".$row['age']; echo "Name:".$row['name']; ?> в  <?php include("includes/connect.php"); $name=$_GET['name']; echo $name; $query = "SELECT * FROM `cats` WHERE name='\$name'"; $results= mysql_query($query); if (!empty($results)){ echo "query successful" ; exit; } $row=mysql_fetch_assoc($results); echo "Age:".$row['age']; echo "Name:".$row['name']; ?> 

echo $names правильно выводят результат, и echo "query successful" выполняется. Однако

 echo "Age:".$row['age']; echo "Name:".$row['name']; 

только echo – это строковая часть, и запрос, похоже, не дает никаких результатов.

Я попытался изменить mysql_fetch_asso c на mysql_fetch_array , но он ничего не делает. Может ли кто-нибудь сказать мне, что я делаю неправильно здесь. Моя таблица DB имеет два столбца и две строки.

Solutions Collecting From Web of "Запрос MySQL не работает при использовании переменной php в where where"

Вы избегаете $ в переменной, выполняя \$ . Пытаться:

 $query = "SELECT * FROM `cats` WHERE name='$name'"; 

РЕДАКТИРОВАТЬ

Из приведенного ниже обсуждения.

Проблема с undefined index заключается в том, что вы используете $row['age'] когда действительно, имя столбца в базе данных – Age . Поэтому при обращении к элементу вы должны использовать $row['Age'] . То же самое касается name .

 $query = "SELECT * FROM `cats` WHERE name='" . $name . "'"; 

или без конкатенации

 $query = "SELECT * FROM `cats` WHERE name='$name'"; 

Это должно работать:

$ query = "SELECT * FROM cats WHERE name = '$ name'";

Кроме того, когда вы вызываете «exit»; в следующем блоке он отменит выполнение остальной части вашего скрипта:

  if (!empty($results)){ echo "query successful" ; exit; }