-2
我的sql select查询在phpmyadmin中可用,但不能在我的php代码中工作。这里是我的代码。请帮助我找到解决方案。谢谢您的帮助我的select查询在phpmyadmin中可用,但不在我的代码中
$conn=mysqli_connect("localhost","root","");
if(!$conn) {
die(mysqli_error());
}
$db=mysqli_select_db($conn,"dbname");
if(!$db) {
die(mysqli_error());
}
$to_date=$_REQUEST['to_date'];
$r_date=$_REQUEST['date'];
$role=$_REQUEST['role'];
$user_name=$_REQUEST['user'];
if($_REQUEST['role']='all'||$_REQUEST['role']="") {
$sql="SELECT *
FROM `daily_log`
WHERE date BETWEEN '$r_date'AND '$to_date'
AND category='Activity'";
}else{
$sql="SELECT *
FROM `daily_log`
WHERE category='Activity'
AND assigned_to = '$user_name'
AND date BETWEEN '$r_date' AND '$to_date'";
echo $sql;
}
$exe=mysqli_query($conn,$sql);
$i=1;
while($row=mysqli_fetch_array($exe)) {
...table rows..
}
'$ _REQUEST ['role'] ='all'|| $ _REQUEST ['role'] =“”'这些是*赋值*,不是比较。 – Qirel
您已经在使用支持**准备语句的API,并且使用了有界变量输入,您应该利用带占位符(准备语句)的参数化查询来保护数据库免受[SQL注入](http://stackoverflow.com/q/60174 /)! 开始使用['mysqli :: prepare()'](http://php.net/mysqli.prepare)和['mysqli_stmt :: bind_param()'](http://php.net/mysqli-stmt .bind-PARAM)。 – Qirel
您需要进行自己的调试并发布相关的错误消息。使用['mysqli_error()'](http://php.net/manual/en/mysqli.error.php)从MySQL获取任何错误,并使用'error_reporting(E_ALL); ini_set('display_errors',1);'找到任何PHP错误。 – Qirel