簡體   English   中英

在where子句中使用php變量時MySQL查詢無效

[英]MySQL query not working while using php variable in where clause

我是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'];
 ?>

echo $names正確輸出結果, echo "query successful"也是如此。 但是,那

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

只有echo是字符串部分,查詢似乎沒有獲取任何結果。

我嘗試將mysql_fetch_asso c更改為mysql_fetch_array ,但它也沒有做任何事情。 誰能告訴我這里我做錯了什么。 我的數據庫表有兩列和兩行。

你逃避$做的變量\\$ 嘗試:

$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'”;

另外,當你打電話給“退出”時 在下面的塊中,它將取消執行腳本的其余部分:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM