2013-03-22 75 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);