根据 URL 中的变量从数据库中获取数据

Get data from database based on variable in URL

我正在尝试创建一个模板,该模板基于 URL 变量 ?=1&?b=siteurl 从数据库中获取一行数据。当访问 http://www.example.com/?a=1&?b=siteurl 时,我想显示该特定行的所有信息,例如标题。

    $id = $_GET['a'];
    $dp = $_GET['b'];
    $stmt = $mysqli->prepare( "select option_id,option_name,option_value from tablename WHERE option_id = ? AND option_name = ?");
    $stmt->bind_param("is", $id, $dp );
    $stmt->execute();
    $result = $stmt->get_result();
    if($result->num_rows > 0){
    while ($row = $result->fetch_assoc()) {
    echo '<span id="show">',"{$row['value']}",'</span>' ;
    }
  }
}

我认为它有效,因为我没有收到任何错误,但没有数据显示,如果我 运行 在 phpMyAdmin 中进行此查询,我会收到我想要获取的数据。

您收到白页的原因可能是语法错误。查看您的代码,您正在使用 , 连接(连接)字符串 - 在 PHP 中,您使用 . 连接变量,因此您的 echo 语句应该是:

echo '<span id="show">' . $row['value'] . '</span>';.

我注意到的第二件事是你的 URL mark-up;仅在 link 中使用一次 ? (它表示变量的开始)。要在 link 中指定多个变量,请用 & 将它们分开。所以你的例子 link 应该是:http://www.example.com/?a=1&b=siteurl.

最后一点,为避免出现空白页面而不是错误页面,请确保在 PHP 中启用错误报告。将其放入文件的 header 中应该有效:

ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(E_ALL);

不要忘记稍后将其删除,以免将应用程序错误泄露给陌生人。