我在使用下面的SQL查询时收到错误“Undeclared variable: $start
”。
<?php
if($Spage == ""){
$Spage = "1";
}
$Sper_page = "5";
$start = ($Spage-1)*$Sper_page;
$sResults = $oCon->dbFetchSmarty("SELECT * FROM experts WHERE exp_process LIKE '%".$process."%' AND exp_machinaries like '%".$machineCat."%' AND exp_country = '". $country."' 'LIMIT $start, $Sper_page'");
?>
答案 0 :(得分:1)
你搞砸了你的单引号。应该是
$sResults = $oCon->dbFetchSmarty("SELECT * FROM experts WHERE exp_process LIKE '%".$process."%' AND exp_machinaries like '%".$machineCat."%' AND exp_country = '". $country."' LIMIT $start, $Sper_page");
稍微清理一下查询:
$sResults = $oCon->dbFetchSmarty("SELECT * FROM experts WHERE exp_process LIKE '%$process%' AND exp_machinaries like '%$machineCat%' AND exp_country = '$country' LIMIT $start, $Sper_page");
要删除的下一步是使用预准备语句并在
中绑定这些参数答案 1 :(得分:0)
试试这个:(设置限制和偏移的另一种方法)
<?php
if($Spage == ""){
$Spage = "1";
}
$Sper_page = "5";
$start = ($Spage-1)*$Sper_page;
$sResults = $oCon->dbFetchSmarty("SELECT * FROM experts WHERE exp_process LIKE '%".$process."%' AND exp_machinaries like '%".$machineCat."%' AND exp_country = '". $country."'LIMIT $per_page OFFSET $start'");
?>
顺便说一句,你
答案 2 :(得分:0)
你在LIMIT和'之间省略了一个空格。 一定是
$country."' ' LIMIT . ........
答案 3 :(得分:0)
您的查询创建过于复杂,因此缺少一些简单的错误。请记住,当您在PHP中使用双键"
时,它会将$variables
扩展为字符串。
因此更简单易读,因此调试方法就是这个
$sql = "SELECT * FROM experts
WHERE exp_process LIKE '%$process%'
AND exp_machinaries like '%$machineCat%'
AND exp_country = '$country'
LIMIT $start, $Sper_page";
$sResults = $oCon->dbFetchSmarty($sql);
答案 4 :(得分:0)
检查查询的最佳解决方案是在phpmyadmin中。您只需将查询和复制/过去的查询部分回显到phpmyadmin。所以它会为你的查询结构或任何错误提供适当的指导。