Heim > Fragen und Antworten > Hauptteil
Wie im Bild unten gezeigt, warum kann das Programm die Datenbankdaten nicht lesen?
ringa_lee2017-06-29 10:10:05
你的代码上有几个问题:
连接上数据库之后,选择数据表的操作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))
代言2017-06-29 10:10:05
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"];
}