-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