我正在尝试查询表格下注,但似乎它没有返回任何内容,即使其中的数据符合条件
我不确定我是否遗漏了一些完全明显的东西
这是我的代码,
<?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";
}
?>
答案 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注入的评论,清理输入非常重要。