我需要一些帮助来回显一个SQL字段,但它一直显示资源#4或根本没有显示任何内容。
我的代码是
mysql_connect("$host", "$username", "$password") or die("cannot connect");
mysql_select_db("$db_name") or die("cannot select DB");
$myusername=$_POST['myusername'];
session_register("myusername");
$result = mysql_query("SELECT statsight from playerinfo WHERE username = 'myusername'") or die(mysql_error());
$row = mysql_fetch_array($result);
if(!session_is_registered('myusername')){
header("location:mainlogin.php");
}
echo $row['statsight'];
?>
<html>
<body>
Login Successful
<form name="form2" method="post" action="stat.php">
Stat1: <?php echo "<td>".$row['statsight']."<td>"?>
<input type="submit" value="+">
</form>
</body>
</html>
它没有显示任何内容。它仅使用Stat1:
按钮显示+
。
如果重要,数据库中statsight
的值为3,myusername
信息来自表单。
使用
工作session_start();
$myusername=$_SESSION['myusername'];
答案 0 :(得分:1)
username = 'myusername'
你不是在这里起诉变量。
我不是PHP专家,但这可能是正确的方法
mysql_query("SELECT statsight from playerinfo WHERE username = ' ". $myusername."'") or die(mysql_error());
虽然这不是一种正确的方法,但您应该在执行查询时使用Prepared语句的机制。
答案 1 :(得分:0)
您需要使用mysql_fetch_assoc
代替mysql_fetch_array
以便将您的字段名称作为键$row['statsight']
答案 2 :(得分:0)
你必须在这里加'$ myusername'
$ result = mysql_query(“从playerinfo WHERE username ='$ myusername'”中选择statsight)或者死(mysql_error());
答案 3 :(得分:0)
不推荐使用mysql扩展。我们现在打算使用mysqli。虽然mysqli确实支持预备语句,但对于像你这样的简单选择它们并不是必需的。使用PHP函数mysqli_real_escape_string()应该足够了。对于插入查询,需要额外的安全性。
您对会话使用的方法已完全弃用。我的示例代码中显示了正确的方法。我认为你的参考已经过时了,它是你麻烦的根源。我建议花一些时间使用官方PHP手册的当前副本。
有几个函数可用于处理返回结果集的查询结果。这是
的部分列表mixed mysqli_result::fetch_array ( [ int $resulttype = MYSQLI_BOTH ] )
// allows you to retrieve an array with numeric keys, an associative array or both
array mysqli_result::fetch_assoc ( void )
// returns an associative array of the current row
object mysqli_result::fetch_object ([ string $class_name [, array $params ]] )
// returns the current row as an object
Mysqli可用于面向对象(OO)或程序方式。现在大多数程序都使用OO风格。这是一个例子(在OO风格中)。
$mysqli = new mysqli( $host, $username, $password, $dbname );
if ($mysqli->connect_errno)
{
printf( "Connect failed: %s\n", $mysqli->connect_error );
exit();
}
$_SESSION[ 'myusername' ] = $_POST[ 'myusername' ];
$result = $mysqli->query
( "SELECT statsight from playerinfo WHERE username = '".
$mysqli->real_escape_string('myusername' )."'";
$data_array = $result->fetch_assoc();
//$result is a mysqli_result object.
//$data_array is an array of field_name=>value pairs.
if( !isset( $_SESSION[ 'myusername' ])) header( "location:mainlogin.php" );
echo $data_array[ 'statsight' ];
$mysqli->close();
$result->free();
?>
<html>
<body>
Login Successful
<form name="form2" method="post" action="stat.php">
Stat1: <?php echo "<td>".$data_array[ 'statsight' ]."<td>"?>
<input type="submit" value="+">
</form>
</body>
</html>