好的,所以我不是百分之百,这是实现我想要的最佳方式,但是这里有。
我有一些PHP代码来处理SQL查询,我希望通过AJAX请求将其传递给SQL值。最初我用PHP做了所有这些,即我有一个叫做'query'的PHP函数,它会执行我传入它的SQL命令。这很好用,我可以使用数组,但是我想对结果做更多的事情并感觉需要javascript。因此,要执行PHP代码,我正在尝试创建一个AJAX请求,现在只输出结果。
这是我的PHP,它位于query.php
中<?php
static $handle;
if (!isset($handle))
{
try
{
$handle = new PDO("mysql:dbname=" . DATABASE . ";host=" . SERVER, USERNAME, PASSWORD);
$handle->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
}
catch (Exception $e)
{
trigger_error($e->getMessage(), E_USER_ERROR);
exit;
}
}
$statement = $handle->prepare($sql);
if ($statement === false)
{
exit;
}
$results = $statement->execute($parameters);
if ($results !== false)
{
$array = $statement->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($array);
}
else
{
// return false; do nothing for now
}
?>
这是处理AJAX请求的基本JS函数:
function query (sql) {
$.ajax({
url: 'query.php',
data: { sql: sql },
dataType: 'json',
success: function(data)
{
console.log(data);
}
});
}
当我传递一个简单的SQL查询来测试它时,我根本就没有在控制台中得到任何东西。
关于我做错了什么或有更好方法的提示的任何线索?
答案 0 :(得分:0)
我不能发表评论,所以我写了一个答案:
您是否从$sql
设置了$_GET
?
试试这个:
function query (sql) {
$.post('query.php', { sql: sql }, function(data){
console.log(data);
}, 'json');
}
并在query.php中:
<?php
$sql = isset($_POST['sql']) ? $_POST['sql'] : '';
...