我已经开始学习mysqli预备语句技术,并坚持使用以下几行:
include 'config.php';
$location=$_SESSION['cl'];
$sql = $db->prepare("SELECT * FROM locations WHERE loc LIKE ?");
$sql -> bind_param('s',$location);
$sql -> execute();
$sql->store_result();
$sql -> bind_results($results);
while($sql->fetch()){
echo $results;
}
有人可以解释可能出错的地方吗?
答案 0 :(得分:2)
最大且最重要的问题缺少错误报告。
它不仅破坏了这个特殊的问题,而且破坏了你对PHP的整体体验 每当出现问题时,PHP都会告诉你 - 发生了什么以及应该责怪谁。只有你这样做。你永远都应该。
在实际网站上,您必须查看错误日志,因此,必须设置
error_reporting(E_ALL);
ini_set('display_errors',0);
ini_set('log_errors',1);
在本地开发服务器上,可以在屏幕上出错:
error_reporting(E_ALL);
ini_set('display_errors',1);
当您看到错误消息时,问题就解决了。 (只有一个。另一个将被跟随)
在<{strong> 连接:
之前的config.php
中添加以下行
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
从mysql端通知所有错误
另请注意,您不应使用LIKE进行字符串比较,并且您的查询必须
SELECT loc FROM locations WHERE loc = ?