在PHP SQL准备中挣扎

时间:2017-05-02 10:19:52

标签: php mysql rest api prepare

我正在使用PHP中的单个get方法编写一个非常简单的REST服务。我是PHP的新手,但在尝试理解所有功能的同时,我发现它是一个很好的框架。

我的API运行良好&以非常快的速度将数据作为JSON数组返回,但在我推送它之前,我担心会发生SQL注入和从在线阅读中发现一种相当快速的防止这些方法可能是为DB添加一个SQL准备来解析查询&变量分开。 获取请求中的我的变量是SHA512散列字符串& API也在HTTPS环境中运行。

我正在努力解决的问题如下:

$stmt = mysqli_prepare ($link, "select blah,blah from people WHERE hashed = ? and blah <>''" );

        //binding SQL parameters
        mysqli_stmt_bind_param($stmt, 's', $e);

        // excecute SQL statement
        mysqli_stmt_execute($stmt);

        //get results
        $result = mysqli_stmt_get_result($stmt);
}
        //Set 405 status if wrong method is used.
        else {
             $result = http_response_code(405); 
        }
//debug variable check & SQL results row count
echo $e;        
echo mysqli_num_rows($result); 

我知道$ link的变量正在按预期工作,因为他们之前正在使用从包含的单独文件中提取连接字符串。

目前,$ e的调试回显按预期返回变量,但rowcount为0。

如果我在SQL Server中运行查询,查询将按预期返回结果。我使用MAMP(不是专业版),所以我也不确定SQL分析器。我认为我的问题在于某处的参数绑定。

提前致谢

0 个答案:

没有答案