PHP 没有错误显示但没有获取数据库字段

标签 php mysql

我的数据库字段没有填充,但页面确认它存在。所以第一个 SQL 正在运行,但第二个没有提取信息。如果我把页面 checkout 。它找不到页面并重定向到 page_not_found。我这样做正确吗?我在这里做错了什么?

//get page url and query db
$this_page = $_GET['page'];
$this_page = escape_data($_GET['page']);

//Make sure page exist
$SQL_page_exist = "SELECT page_title FROM learn_more WHERE page_title = '$this_page'";
$SPE_result = mysql_query($SQL_page_exist);
if(mysql_num_rows($SPE_result) == 0) 
{
    echo '<META HTTP-EQUIV="Refresh" Content="0; URL=page_not_found.php">';
}
else {

$SQL = 
   "SELECT  * FROM learn_more AS lm 

INNER JOIN  learn_more_to_reference_key AS lmtrk 
        ON  lm.id = lmtrk.learn_more_id 

INNER JOIN  reference_keys AS rk 
        ON  rk.keys_id = lmtrk.reference_key_id

     WHERE  page_title = '$this_page'";

$result = mysql_query($SQL);

while ($db_field = mysql_fetch_assoc($result));
{   
        $id               =     $db_field['ID'];
        $main_title       =     $db_field['main_title'];
        $main_content     =     $db_field['main_content'];
        $reference_keys   =     $db_field['keys_href']; 
        $sub_title        =     $db_field['sub_title'];
        $sub_content      =     $db_field['sub_content'];
}
}
mysql_close($dbc);

最佳答案

您应该删除 while 语句后的分号,因为它不会执行以下附件(意味着您的查询没问题,但 while 语句无效)。

此外,我不确定,但声明:

$id     =     $db_field['ID'];

如果 mysql 字段是“id”(小写),可能会产生错误。虽然 MySQL(通常)不区分大小写,但 php 数组键却区分大小写,因此该键可能仅可用作“id”而不是“ID”...

关于PHP 没有错误显示但没有获取数据库字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11440211/

相关文章:

php - Amazon S3 在创建对象时抛出 cURL 错误

php - 我应该如何使用 PHP 散列我的密码?

mysql - MariaDB 将数据上传到表后创建不必要的临时文件

Python , MYSQL 数据库

php - php循环打印字符串

php - XPath 查询在 SimpleXML 中返回 'false'

php - Laravel 将数据数组附加到数据透视表

php - 如何检查输入的值是否为货币

php - 无法显示 SELECT 结果 sql

MySQL:插入静态和动态值混合