通过自定义PHP文件从html文件访问数据库

时间:2014-03-28 09:57:00

标签: javascript php html mysql

现在我正在与mysql建立数据库连接。 html - > PHP - >查询 - >数据接收工作。我展示了相关的代码:

从html文件开始:

d3.json("http://path/file.php",   function(error, data) {
    console.log (data); 
});

file.php:

    <?php

    $username = "myusername"; 
    $password = "mypassword";   
    $host = "myhost";
    $database="myDB";

    $server = mysql_connect($host, $username, $password);
    $connection = mysql_select_db($database, $server);

    $myquery = "select * from `mytable`";
    $query = mysql_query($myquery);

    if ( ! $query ) {
        echo mysql_error();
        die;
    }

    $data = array();

    for ($x = 0; $x < mysql_num_rows($query); $x++) {
       $data[] = mysql_fetch_assoc($query);
    }

    echo json_encode($data);     

    mysql_close($server);
    ?>

我想要的是每个查询只有1个.php文件而不是1个php文件。这意味着我需要从html发送一个变量inputquery到php文件。我尝试了几件事,比如改变:

`$myquery = "select * from `mytable`; into `$myquery = inputquery`;

我认为错误的一点是从数据库请求数据的函数的定义。我尝试了什么(错误,以下代码无法按预期工作):

var inputquery = "select * from `mytable`"
d3.json("http://serverhost/path/file.php",  function(error, data) {
    console.log (data); 
});

也许这不起作用,因为我没有告诉我想要的函数作为变量inputquery的.php文件的输入。我试图把它放在函数中,但得到“数据未定义”的错误,所以我认为显示错误的代码是不值得的。

如何将var inputquery输入.php文件?这可能不是我计划的方式。

谢谢

3 个答案:

答案 0 :(得分:0)

您必须将带有http请求的inputquery变量作为POST数据发送, 然后在你的php文件中你可以做到:

$myquery = $_POST['inputquery'];

您肯定会找到一些关于使用您要发送的请求发送帖子数据的文档。

答案 1 :(得分:0)

这是一个非常糟糕的主意,因为你变得非常容易受到SQL注入,即便如此我也会尽力帮助你

如果你有这样的话,我假设你有JQuery

您可以执行以下操作 html.file

var inputquery = "select * from `mytable`";

$.post("relative/path/to/file.php", 
{query : inputquery},
function (data) {
     alert(data); // See output
},'json);

file.php

<?php

$username = "myusername"; 
$password = "mypassword";   
$host = "myhost";
$database="myDB";

$server = mysql_connect($host, $username, $password);
$connection = mysql_select_db($database, $server);

$myquery = $_POST['query'];
$query = mysql_query($myquery);

if ( ! $query ) {
    echo mysql_error();
    die;
}

$data = array();

for ($x = 0; $x < mysql_num_rows($query); $x++) {
   $data[] = mysql_fetch_assoc($query);
}

echo json_encode($data);     

mysql_close($server);
?>

答案 2 :(得分:0)

最简单的方法是在d3.json中使用get参数:

var yourparam = 'mytable';
d3.json("http://path/file.php?query=" + yourparam, function (error, json) {
...
});

您可以从$ _GET数组中检索变量。 最后不要把mysql命令放到你的js中,也不要使用mysql库。这很危险。