【发布时间】:2012-07-26 16:41:18
【问题描述】:
-问题仍未解决-
我正在尝试调用数据库,将表的所有行放入一个数组中,将该表作为 json 数据传递给我的 JS,然后将该数据用作函数的参数。
当我运行脚本时,什么也没有发生。我在控制台中没有任何错误,脚本的其余部分正常加载。我对 mySQL 和 PHP 很陌生,我在这里做错了什么?我怀疑我搞砸了 php。
- XAMPP 服务器,正在我的桌面上测试
- 所有链接的文件都在同一个目录中
- 任何地方都没有显示可见的错误。据我所知,该脚本甚至没有尝试加载 PHP,但也没有在 firebug 的控制台中显示错误
已尝试:
- 重命名不带空格的表
- 将 for 循环放在回调函数中
- 修正 php 错误
这是我正在使用的更新后的 JS:
this.taskMenu = function()
{
var table = [];
$.getJSON("taskMaster.php", {"table" : "firstlist"},
function(data)
{
table.push(data);
for(i=0; i<table.length; i++)
{
var taskId = table[i].taskName.replace(/\s+/g,"") + i;
formatTask("interface",taskId,table[i].taskName,table[i].taskDescription,table[i].taskComplete);
}
});
}
这是更新后的 PHP:
error_reporting(E_ALL); ini_set('display_errors','On');
$con = mysql_connect("localhost", "root", "m3648y73");
if (!$con){die('Could not connect: ' . mysql_error());};
mysql_select_db("tasklistdb", $con);
$table = $_GET['table'];
$sql = mysql_query("SELECT taskName, taskId, taskDescription, taskComplete FROM `".$table."`");
$listTasks = array();
while ($row_user = mysql_fetch_assoc($sql))
$listTasks[] = $row_user;
echo json_encode($listTasks);
mysql_close($con);
我是否正确链接到数据库?
【问题讨论】:
-
在浏览器中打开 taskMaster.php 时看到了什么?
-
打开报告并将错误添加到 php 页面的顶部。错误报告(E_ALL); ini_set('display_errors','On');确保使用正确的参数调用此页面。
-
我只是想补充一点,在您解决了这个问题之后,您应该阅读有关 SQL 注入的信息。你现在非常脆弱。另外,尝试使用 PDO 代替 mysql_connect,这是推荐的方式。
-
@Vatev 我希望我能想到这一点。什么都没有,taskMaster.php 什么也没显示,所以我认为我的数据库调用不正确?
-
如果将 $_GET['table'] 更改为 $_POST['table'] 会发生什么?我认为首先需要发布而不是获取。