我为其他人接管了一个MAMP版本的网络应用程序,并尝试将其联机。
Web应用程序调用API,然后将从API接收的数据加载到mySQL数据库中,然后在浏览器中显示一些结果。这是通过PHP和javascript的组合完成的,包括AJAX。
为了简化代码,创建了一个generalQuery.php文件,该文件接收来自各种函数的参数并在数据库上执行查询。这在本地MAMP版本上完美地工作,但是一旦在线(hostmonster),当我执行将LOADS数据加载到数据库中的查询时,我得到“内部错误”代码500。但是,当我执行试图从数据库中提取数据的查询时,我没有收到任何错误。我跟踪错误是由PDO fetchAll函数引起的。
$dbh = GetConnection();
// get the query results
$dataEncoded = $_POST ['jsonData'];
$literal = json_decode($dataEncoded, true);
$stmt = $dbh->query($literal);
$stmt->setFetchMode(PDO::FETCH_NUM);
$records = $stmt->fetchAll();
GetConnection()函数调用建立PDO连接的单独文件。
为什么代码在MAMP中工作但在hostmonster服务器上没有的任何想法?
是我在加载到数据库时遇到错误的原因,但是在查询时没有,因为fetch实际操作的是查询结果而不是数据库本身?
这被标记为重复的问题
提前致谢!
更新:
服务器错误是 -
PHP致命错误:带有消息'SQLSTATE [HY000]的未捕获异常'PDOException':常规错误:2053
并被追溯到 -
PDOStatement->使用fetchall()
但是,经过进一步的故障排除后,我发现即使发生错误,数据库实际上也会被查询修改。我仍然想修复错误,这篇文章被标记为重复的问题。如果问题的这一部分无法回答,那么我仍然想知道如何使架构更加安全,正如迈克所指出的那样。我是网络开发人员的新手,你能指出我如何解决我的安全问题的正确方向吗?由于数据是从API获取的,除了让客户端执行此操作之外,还有其他方式来形成查询吗?