Wie im Bild unten gezeigt, warum kann das Programm die Datenbankdaten nicht lesen?
你的代码上有几个问题:
连接上数据库之后,选择数据表的操作mysql_select_db()要在查询操作mysql_query()之前,否则查询不知道在哪个数据表中查,就会直接在整个数据库运行语句。然而,你这个SQL语句写法却不符合数据库上查询的格式,所以会执行失败,也就是没有数据。
mysql_select_db()
mysql_query()
mysql_query()对于SELECT语句,返回的是一个资源引用或者FALSE值,要遍历里面所有的行需要使用mysql_fetch_assoc()遍历资源并返回行数据。
SELECT
FALSE
mysql_fetch_assoc()
建议不要将<?php的问号和php分开来写,因为这个是引擎识别PHP开始的标识,分开可能会导致引擎识别出错
<?php
php
所以,第一点,把mysql_select_db()和mysql_query()两行调换位置。第二点,将foreach($result as $row)改为while($row = mysql_fetch_assoc($result))
foreach($result as $row)
while($row = mysql_fetch_assoc($result))
应该是mysql_select_db('news', $conn);
mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。很有可能一条查询执行成功了但并未影响到或并未返回任何行。
mysql_fetch_assoc() 函数从结果集中取得一行作为关联数组。返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。
while($row = mysql_fetch_assoc($result)) { echo $row["id"]; }
去掉判断的!
你的代码上有几个问题:
连接上数据库之后,选择数据表的操作
mysql_select_db()
要在查询操作mysql_query()
之前,否则查询不知道在哪个数据表中查,就会直接在整个数据库运行语句。然而,你这个SQL语句写法却不符合数据库上查询的格式,所以会执行失败,也就是没有数据。mysql_query()
对于SELECT
语句,返回的是一个资源引用或者FALSE
值,要遍历里面所有的行需要使用mysql_fetch_assoc()
遍历资源并返回行数据。建议不要将
<?php
的问号和php
分开来写,因为这个是引擎识别PHP开始的标识,分开可能会导致引擎识别出错所以,
第一点,把
mysql_select_db()
和mysql_query()
两行调换位置。第二点,将
foreach($result as $row)
改为while($row = mysql_fetch_assoc($result))
应该是mysql_select_db('news', $conn);
mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。
对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。
非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。很有可能一条查询执行成功了但并未影响到或并未返回任何行。
mysql_fetch_assoc() 函数从结果集中取得一行作为关联数组。
返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。
去掉判断的!