2015-11-20 119 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