现在我正在与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文件?这可能不是我计划的方式。
谢谢
答案 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库。这很危险。