不接受MySQL查询变量

时间:2017-02-26 19:54:49

标签: php mysql

我正在研究一个应该从MySQL获取数据的PHP脚本。

这就是我在做什么:

<?php
include('db.php');
session_start();
$doctor_actual=$_SESSION['doctor_actual'];
echo $doctor_actual;
 if(isset($_REQUEST['actionfunction']) && $_REQUEST['actionfunction']!=''){
$actionfunction = $_REQUEST['actionfunction'];

   call_user_func($actionfunction,$_REQUEST,$con,$limit,$adjacent);
}
function showData($data,$con,$limit,$adjacent){
  $page = $data['page'];
   if($page==1){
   $start = 0;  
  }
  else{
  $start = ($page-1)*$limit;
  }
  $sql = "select * from tb_opiniones_doctor where codigo_verificacion = '".$doctor_actual."' order by id_opinion_doctor asc";
  $rows  = $con->query($sql);
  $rows  = $rows->num_rows;

  $sql = "select * from tb_opiniones_doctor where codigo_verificacion = '".$doctor_actual."'  order by id_opinion_doctor asc limit $start,$limit";

  $data = $con->query($sql);
  $str='<table><tr class="head"><td>Id</td><td>Firstname</td><td>Lastname</td></tr>';
  if($data->num_rows>0){
   while( $row = $data->fetch_array(MYSQLI_ASSOC)){
      $str.="<tr><td>".$row['id_opinion_doctor']."</td><td>".$row['id_opinion_doctor']."</td><td>".$row['id_opinion_doctor']."</td></tr>";
   }
   }else{
    $str .= "<td colspan='5'>No Data Available</td>";
   }
   $str.='</table>';

echo $str; 
pagination($limit,$adjacent,$rows,$page);  
}

我的问题出现在两个问题上,只有当我把$ doctor_actual的实际值,而不是变量时,它们才有效。

我已经回应了$ doctor_actual的值,它是9dv2ACvtwn2。

如果我输入查询..codigo_verificacion =&#34; 9dv2ACvtwn2&#34; ...查询工作正常。

如果我把:

codigo_verificacion = '".$doctor_actual."'

codigo_verificacion = '.$doctor_actual.'

codigo_verificacion = $doctor_actual

它显示消息:

No Data Available

1 个答案:

答案 0 :(得分:3)

您应该阅读Variable scope。外部函数$doctor_actual和函数内部$doctor_actual是两个不同的变量。正如你可以在上面读到的那样

<?php
$var = 'text';

function myFunc()
{
   global $var;
   echo $var; // 'text'
}

将解决您的问题。

但是在下面的评论中注意到@Sean,最好将值作为参数传递。只需在函数中添加其他参数,并在函数调用期间传递值。