2013-03-22 87 views
0

我想從用戶輸入然後從表中提取數據並顯示它。

我的代碼是

$ini = $_GET["ini_id"]; 
$con=mysqli_connect("localhost","root","","globalgoals"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
else 

{ 
    $country = array(); 
    //country 
    $sql=""; 
//!mysqli_query($con,$sql)) 
    $result = mysqli_query($con,"SELECT * FROM country WHERE metrics="$ini");/*table name*/ 
    while($row = mysqli_fetch_array($result)) 
    { 
     array_push($country,$row['country']);/*column name*/ 
    } 
    // 

當我輸入網址http://localhost/xampp/testing/Int/table.php?ini=C2C

我得到的錯誤

Notice: Undefined index: ini_id in C:\xampp\htdocs\xampp\Testing\Int\table.php on line 2 
+2

,因爲它是在'$ _GET [「ini」];',仔細看鏈接。 **並且您很容易受到sql注入攻擊** – 2013-03-22 08:51:39

+0

您應該仔細研究PDO或MySQLI。 Mysql_函數已被棄用,並且您的代碼很容易被注入! – Elias 2013-03-22 08:55:12

+0

它不會是活的,它只是爲Exec的 – 2013-03-22 08:57:46

回答

0

在這裏你試圖讓這樣$_GET['ini'];

http://localhost/xampp/testing/Int/table.php?ini=C2C 

如果你想獲得它像$_GET['ini_id']

http://localhost/xampp/testing/Int/table.php?ini_id=C2C //change here 
3

獲取$ini = $_GET["ini"];因爲你沒有通過ini_id

$result = mysqli_query($con,"SELECT * FROM country WHERE metrics='".$ini."'"); 
+0

謝謝你現在的作品! – 2013-03-22 08:56:34

+0

@SaiVignesh歡迎傢伙... – 2013-03-22 08:58:03

0

一件事,

$result = mysqli_query($con,"SELECT * FROM country WHERE metrics='".$ini."'"); 

你之前和變量之後錯過了點。

+0

謝謝你現在的作品! – 2013-03-22 08:58:27

1

使用isset ...

$ini = (isset($_GET['ini_id'])) ? $_GET['ini_id'] : null; 

但或許更重要的是,你需要你使用它作爲一個數據庫查詢的部分之前,以確保該變量。由於您的ID是字母數字使用mysqli_real_escape_string():

$ini = (isset($_GET['ini_id']) ? $_GET['ini_id'] : null; 
$ini = mysqli_real_escape_string($con, $ini);