无法获取mysql查询到炒锅

时间:2014-04-15 19:19:35

标签: php mysql database

我正在尝试查询表格下注,但似乎它没有返回任何内容,即使其中的数据符合条件

我不确定我是否遗漏了一些完全明显的东西

这是我的代码,

<?php

        //Begin session
    session_start();

        //Get pool var
    if(isset($_GET['pool'])) {
        $_SESSION['pool'] = $_GET['pool'];
        $pool = $_SESSION['pool'];
    }

    //Include database connection details
    require_once('config.php');

    //Array to store validation errors
    $errmsg_arr = array();

    //Validation error flag
    $errflag = false;

    //Connect to mysql server
    $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
    if(!$link) {
        die('Failed to connect to server: ' . mysql_error());
    }

    //Assign memberid
    $memberid = $_SESSION['SESS_MEMBER_ID'];

    echo "POOLNAME $pool<br>";
    echo "MEMBERID $memberid<br>";

    //Select database
    $db = mysql_select_db(DB_DATABASE);
    if(!$db) {
        die("Unable to select database");
    }

    $result = mysql_query($link,"SELECT * FROM bets WHERE member_id='$memberid'");

    echo "RESULT $result";
    echo "SQL executed<br>";

    echo "Executing loop<br>";
    while($row = mysql_fetch_array($result))
    {
        echo "test<br>";
        $matchid = $row['match_id'];
        $betAmount = $row['bet_amount'];
        $teamname = $row['team_name'];
        echo "$betAmount credits placed on team: $teamname for match: $matchid";    
    }
?>

1 个答案:

答案 0 :(得分:1)

您正在混合mysql和mysqli命令。如果可能的话,你需要使用其中一个,最好是mysqli。

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

应该是:

$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);

mysqli_fetch_array()中,第一个参数是mysqli结果对象(你已经正确),它需要为它返回的数组提供第二个参数。例如,MYSQLI_BOTH

MYSQLI_BOTH将允许您通过数字索引或列名引用数组 MYSQLI_ASSOC将允许引用列名但不允许引用数字索引,MYSQLI_NUM允许数字索引。

所以while ($row = mysqli_fetch_array($result, MYSQLI_BOTH))就是你想要的。

另外,请参考Andy Lester关于SQL注入的评论,清理输入非常重要。