[英]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.