0

私はデータベースからデータをフェッチするためにこのコードを使用しています、私は$data正しくフェッチされていますが、この変数でデータを正しく取得していません$seldataなぜそうですか

<?php
    include_once("includes/connection.php");
    include_once("includes/session.php");
    //echo $_SESSION['uid'];
    $sql="SELECT * FROM employee WHERE eid = '{$_GET['id']}'";
    $result=mysql_query($sql);
    $data=mysql_fetch_array($result);
    echo "data".$data;
    $sel_valsql="select * FROM selected_candidate WHERE eid = '{$_GET['id']}'";
    $sresult=mysql_query($sel_valsql);
    $seldata=mysql_fetch_array($sresult);
    echo "seledata".$seldata;       
?>
4

3 に答える 3

1

これを試して、

$sql = "SELECT * FROM employee WHERE eid = '" . $_GET['id'] . "'";

SQL Injection補足として、値(s)が外部からのものである場合、クエリは脆弱です。それを防ぐ方法については、以下の記事をご覧ください。PreparedStatementsを使用すると、値を一重引用符で囲む必要がなくなります。

于 2013-01-12T08:00:11.720 に答える
1
<?php
include_once("includes/connection.php");
include_once("includes/session.php");
//echo $_SESSION['uid'];
$sql="SELECT * FROM employee WHERE eid = '".$_GET['id']."'";
$result=mysql_query($sql);
$data=mysql_fetch_array($result);
echo "data".$data;
$sel_valsql="select * FROM selected_candidate WHERE eid = '".$_GET['id']."'";
$sresult=mysql_query($sel_valsql);
$seldata=mysql_fetch_array($sresult);
echo "seledata".$seldata;       
?>

注:mysql_fetch_array()は結果の配列を返すため、結果を表示するにはprint_r($ seldata)を実行する必要があります。

于 2013-01-12T08:11:50.513 に答える
0

where条件から一重引用符を削除します。

$sql="SELECT * FROM employee WHERE eid = {$_GET['id']}";

またはこのようにします:

$sql = "SELECT * FROM employee WHERE eid = '" . $_GET['id'] . "'";
于 2013-01-12T08:04:14.303 に答える