2015-11-20 123 views
-1

我已經創建了一個SQL數據庫。我succsess完全插入數據到數據庫中,但我想從數據庫中搜索。從SQL數據庫搜索信息

HTML

<body> 
INSERT AREA 
<br> 

<form action="demo.php" method="post"/> 

    <p>imei: <input type="text" name="input1"/> </p> 

<select name="input2"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
     <option value="4">4</option> 
</select> 

<br> 
    <br> 
    <input type="submit" src="submit.png" alt="Submit Form" /> 

</form> 
Search AREA 
<br> 
<form action="form.php" method="post"> 
Search: <input type="text" name="term" /><br /> 
<input type="submit" value="Submit" /> 
    </form> 
</body> 

demo.php

<?php 

define('DB_NAME', '#'); 
define('DB_USER', '#'); 
define('DB_PASSWORD', 'mypass'); 
define('DB_HOST', 'localhost'); 

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); 

if (!$link) { 
die('Could not connect: ' . mysql_error()); 
} 

$db_selected = mysql_select_db(DB_NAME, $link); 

if (!$db_selected) { 
die('Can\'t use ' . DB_NAME . ': ' . mysql_error()); 
} 

$value = $_POST['input1']; 
$value2 = $_POST['input2']; 

$sql = "INSERT INTO demo (input1, input2) VALUES ('$value', '$value2')"; 

if (!mysql_query($sql)) { 
die('Error: ' . mysql_error()); 
} 

mysql_close(); 
?> 

因此,所有這些工作的完美,我將數據插入到SQL數據庫的罰款,但檢查查了下PHP代碼,不返回任何它只是打開不帶回報值。 *我已擦除數據庫信息。 數據庫名稱:演示
主機名:本地主機

form.php的

<?php 
$db_hostname = 'localhost'; 
$db_username = 'my username'; 
$db_password = 'my pass'; 
$db_database = 'demo'; 

// Database Connection String 
$con = mysql_connect($db_hostname,$db_username,$db_password); 
if (!$con) 
{ 
die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db($db_database, $con); 
?> 

<!DOCTYPE html> 
    <html lang="en"> 
    <head> 
    <meta charset="utf-8" /> 
    <title></title> 
    </head> 
    <body> 
    <form action="demo.php" method="post"/> 

    <p>imei: <input type="text" name="input1"/> </p> 

<select name="input2"> 
    <option value="1">111111111111111111111</option> 
    <option value="2">222222222222222222</option> 
    <option value="3">33333333333333333</option> 
     <option value="4">4444444444444444</option> 
    </select> 

    <br> 
    <br> 

<input type="image" src="submit.png" alt="Submit Form" /> 
</form> 
<br> 
<form action="form.php" method="post"> 
<input type="text" name="term" /><br /> 
<input type="submit" value="Submit" /> 
</form> 

<?php 
if (!empty($_REQUEST['term'])) { 

$term = mysql_real_escape_string($_REQUEST['term']);  

$sql = "SELECT * FROM demeo WHERE Description LIKE '%".$term."%'"; 
$r_query = mysql_query($sql); 

while ($row = mysql_fetch_array($r_query)){ 
echo 'Primary key: ' .$row['PRIMARYKEY']; 
echo '<br /> Code: ' .$row['input1']; 
echo '<br /> Description: '.$row['input2']; 

} 

} 
?> 
</body> 
</html> 
+4

我**高**建議不要使用stringbashing來創建SQL語句。稍後您可以自行解決各種SQL注入問題。相反,創建一個參數化語句並傳入參數。 –

+1

**警告**:如果您只是學習PHP,請不要學習過時的'mysql_query'界面。這很糟糕,並且在未來版本的PHP中被刪除。像[PDO這樣的現代化替代品並不難學](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/)。像[PHP The Right Way](http://www.phptherightway.com/)這樣的指南可以幫助解釋最佳實踐。因爲你將會有嚴重的[SQL注入漏洞](http://bobby-tables.com/),所以你的用戶參數必須是絕對可信的[正確逃脫](http://bobby-tables.com/php) ) 這裏。 – tadman

+0

我是學習php。所以如果你有我可以從哪裏開始的建議。 –

回答

0

通過看你的第一個例子,似乎在第二個,你的表和列名稱不正確。

替換當前的查詢:

SELECT * FROM demeo WHERE Description LIKE '%".$term."%' 

與此查詢:

SELECT * FROM demo WHERE input2 LIKE '%".$term."%'} 

還要考慮其他用戶的建議,以避免SQL注入。

+0

通常最好解釋一下爲什麼你要提出這個建議,即使它只是一個快速記錄。 – tadman

+0

現在看起來更好的答案。 –

+0

確實如此。看起來不錯。 – tadman