我有一个 PHP 代码块,它通过 AJAX 调用以将值插入表中,然后从该表中返回匹配值的列表。插入查询运行良好,但选择查询不返回任何内容。如果我进入 phpmyadmin 并手动运行选择查询,我会得到预期的结果集,但在 PHP 代码中,fetch_assoc() 返回 null。我已经确认所有变量都被正确传递,但代码永远不会进入 while 循环,因为集合中没有结果。下面是一组相关代码:
if (isset($_POST['action']) && $_POST['action'] == "link" && !empty($_POST['link_id']) && !empty($_POST['cat_id'])) {
require_once(realpath(dirname(__FILE__)) . "/../config/config.php");
$link_id = (int)$_POST['link_id'];
$category_id = (int)$_POST['cat_id'];
$query = $conn->query("INSERT INTO links_to_categories (link_id, category_id) VALUES ({$link_id}, {$category_id})");
if ($query) {
$cats = $conn->query("SELECT * FROM links_to_categories lc LEFT JOIN categories c ON lc.category_id = c.category_id WHERE lc.link_id = {$link_id}");
while ($cat = $cats->fetch_assoc()) {
echo "{$cat['category_name']} (<a href=\"#\" onclick=\"unlinkCategory({$link_id}, {$category_id});return false;\">x</a>)<br>";
}
}
die();
}
这个和另一个函数(几乎相同,但执行的是 DELETE 而不是 INSERT)是我的代码中唯一存在此问题的函数。我有十几个正常工作的查询,包括在代码的不同部分运行良好的相同 SELECT 查询,所以这非常令人费解。