在php中传递变量

在php中传递变量,php,mysql,Php,Mysql,变量$q=$\u GET[“q”];将值“q”正确传递给$query并回显$row['YEAR'] 但是,它不能在同一代码中使用while语句 while ($rows = $result2->fetch_array()) { $row0 [] = $rows['YEAR']; $row1 [] = $rows['MONTH']; $row2 [] = $rows['SALES']; } 如果我尝试在$u GET之后直接键入值,它就可以工作($

变量$q=$\u GET[“q”];将值“q”正确传递给$query并回显$row['YEAR']

但是,它不能在同一代码中使用while语句

while ($rows = $result2->fetch_array())

{
$row0 [] = $rows['YEAR'];            
$row1 [] = $rows['MONTH'];        
$row2 [] = $rows['SALES'];
} 
如果我尝试在$u GET之后直接键入值,它就可以工作($q=2013;例如)

谁能给我一个帮助,让while使用$q=$\u GET[“q”]

下面是完整的代码

谢谢你的帮助

<?php
$q=$_GET["q"];

$mysqli = new mysqli('localhost','user','pswd','database');


/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit(); 
}

$query = "SELECT * FROM table_test WHERE `YEAR`='".$q."'";

$result = $mysqli->query($query);

if ($row = $result->fetch_array())

{
echo "<td>" . $row['YEAR'] . "</td>";

}   

$result2 = $mysqli->query($query);

while ($rows = $result2->fetch_array())

{
$row0 [] = $rows['YEAR'];           
$row1 [] = $rows['MONTH'];      
 $row2 [] = $rows['SALES'];
 }  



/* free result set */
$result->close();


 $mysqli->close();

 ?>


$q=$\u GET[“q”]method='get'
提交表单,或者页面的URL不包含带有
?q=2013
的查询字符串,如
www.example.com?q=2013

$q=$\u get[“q”]method='get'
的表单,或者页面的URL不包含带有
?q=2013
的查询字符串,则code>将返回null,如
www.example.com?q=2013

使用mysqli发出警告并不意味着您可以避免sql注入。您的代码容易受到sql注入的攻击。。您需要正确地转义请求。。。因此,要么使用mysqli\u real\u escape\u string,要么使用更好的语句使用mysqli警告并不意味着您可以安全地避免sql注入您的代码容易受到sql注入的攻击。。您需要正确地转义请求。。。因此,要么使用mysqli_real_escape_string,要么使用更好的语句。我正在使用选择器框和AJAX将值发送到$q=$\u GET[“q”];但是,它不适用于while语句。如果我直接键入值,例如$q=$\u GET[“q”];相反,我做的是$q=2013;我使用选择器框和AJAX将值发送到$q=$\u GET[“q”];但是,它不适用于while语句。如果我直接键入值,例如$q=$\u GET[“q”];相反,我做的是$q=2013;它确实有效。