Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 没有错误,但页面仍然为空,并传递变量_Php_Mysql_Variables_Global Variables_Echo - Fatal编程技术网

Php 没有错误,但页面仍然为空,并传递变量

Php 没有错误,但页面仍然为空,并传递变量,php,mysql,variables,global-variables,echo,Php,Mysql,Variables,Global Variables,Echo,我设置了一个小测试项目,当你点击一只狼的名字时,它会把它们带到一个页面,我想用这个页面来个性化他们点击的狼的信息。该页面名为wolf.php。我试图使用passing变量$\u GET方法将URL分配给狼群id,即www.testsite.com/wolf.php?id=1,但是页面随后什么也不显示,即使我没有得到错误 这是主页(home.php) 使用错误报告(E\u ALL)打开错误报告;ini设置(“显示错误”,1)正在开发中,因此您可以在代码中看到致命的语法错误。还建议从mysql_*(

我设置了一个小测试项目,当你点击一只狼的名字时,它会把它们带到一个页面,我想用这个页面来个性化他们点击的狼的信息。该页面名为wolf.php。我试图使用passing变量$\u GET方法将URL分配给狼群id,即www.testsite.com/wolf.php?id=1,但是页面随后什么也不显示,即使我没有得到错误

这是主页(home.php)


使用
错误报告(E\u ALL)打开错误报告;ini设置(“显示错误”,1)正在开发中,因此您可以在代码中看到致命的语法错误。还建议从
mysql_*()
调用中删除
@
错误抑制运算符

最后一行有语法问题。意外的
串联运算符:

// Wrong:
// Parse error: syntax error, unexpected '.'
echo .$result['name'].
;

// Should be:
echo $result['name'];
接下来,您尚未从查询中提取行:

// mysql_query() won't error if there are no rows found.  Instead you have to check mysql_num_rows()
$result = mysql_query("SELECT name FROM wolves WHERE id = '$id'") or die("Query error: " . mysql_error());
// Zero rows found, echo error message.
if (mysql_num_rows($result) < 1) {
  echo "No such wolf.";
}
else {
  // Row found, fetch and display.
  $row = mysql_fetch_assoc($result);
  echo $row['name'];
}

最后,考虑使用PDO或MySQLi而不是旧的
mysql_*()
函数,因为它们支持预先准备好的语句,从而比手动转义变量更安全。
mysql_*()
函数计划弃用。

使用
error\u reporting(E\u ALL)打开错误报告;ini设置(“显示错误”,1)正在开发中,因此您可以在代码中看到致命的语法错误。还建议从
mysql_*()
调用中删除
@
错误抑制运算符

<?php
$username = $_SESSION['username'];
$result = @mysql_query("SELECT * FROM wolves WHERE owner = '$username'");
最后一行有语法问题。意外的
串联运算符:

// Wrong:
// Parse error: syntax error, unexpected '.'
echo .$result['name'].
;

// Should be:
echo $result['name'];
接下来,您尚未从查询中提取行:

// mysql_query() won't error if there are no rows found.  Instead you have to check mysql_num_rows()
$result = mysql_query("SELECT name FROM wolves WHERE id = '$id'") or die("Query error: " . mysql_error());
// Zero rows found, echo error message.
if (mysql_num_rows($result) < 1) {
  echo "No such wolf.";
}
else {
  // Row found, fetch and display.
  $row = mysql_fetch_assoc($result);
  echo $row['name'];
}

最后,考虑使用PDO或MySQLi而不是旧的
mysql_*()
函数,因为它们支持预先准备好的语句,从而比手动转义变量更安全。mysql_*()
函数计划弃用。

在第二个代码片段中,您不能将
$result
视为数组;它是一个资源标识符。要获取数组,请执行以下操作:

<?php
$username = $_SESSION['username'];
$result = @mysql_query("SELECT * FROM wolves WHERE owner = '$username'");
$row = mysql_fetch_assoc($result);
echo $row['name'];

另外,请阅读SQL注入漏洞。

在第二段代码中,您不能将
$result
视为数组;它是一个资源标识符。要获取数组,请执行以下操作:

$row = mysql_fetch_assoc($result);
echo $row['name'];

另请阅读SQL注入漏洞。

首先需要获取结果行

变量1-关联数组(值可作为字段名使用)

变量2-枚举数组(按索引,从零开始)


首先需要获取一个结果行

变量1-关联数组(值可作为字段名使用)

变量2-枚举数组(按索引,从零开始)


您的代码易受攻击。在进行查询之前,您需要使用数据库库的适当方法转义数据。您的代码易受攻击。在进行查询之前,您需要使用数据库库的适当方法来转义数据。我修复了语法问题,但仍然得到一个空白页。谢谢你关于SQL注入的警告,我会调查的。@Sunden如上所述,你还没有从结果集中提取一行。我修复了语法问题,但仍然得到一个空白页。感谢您提供有关SQL注入的警告,我将对此进行调查。@Sunden请参见上文,您尚未从结果集中获取一行。
$result = mysql_fetch_row($result);
echo $result[0];