一行程序憋死了女汉子

Share the joy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

function getDetails($iid)  {
global $app;
$log = $app->getLog();

$sql = “SELECT * FROM Details where ItemId = :iid ORDER BY id”;
try {
$db = getConnection();
$stmt = $db->query($sql);
$stmt->bindParam(“iid”, $iid);
$details = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
echo  json_encode($details);
} catch(PDOException $e) {
$log->debug( ‘{“error”:{“text”:’. $e->getMessage() .’}}’);
}
};

总是出错:
{“error”:{“text”:SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘:iid ORDER BY id’ at line 1}}

事实再次证明写程序是不能懒省事的,程序拷贝来拷贝去是会出问题的。忙活了一下午得到的教训啊。
我从另外一个function拷贝过来的,那个是要拿到所有的数据,这个需要过滤,就不能用query了,要先prepare,再 bindParam,然后execute。然后才能fetchAll
晚上9:00之前根本没意识到这个问题,还到处翻php和MySql的手册。后来死马当活马医,把另一段程序拿来对照,才看到不同之处。
呜呜,一下午的功夫白费了,求安慰,求鼓励。


Share the joy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •