PHP 从MySQL数据库获取数据

PHP 从MySQL数据库获取数据

通过PHP函数mysql_query执行SQL SELECT语句可以从MySQL表中获取数据。您有多种选项可以从MySQL中获取数据。

最常用的选项之一是使用函数 mysql_fetch_array() 。该函数以关联数组、数值数组或两者形式返回行数据。如果没有更多行可返回,该函数将返回FALSE。

下面是一个简单的示例,用于从 employee 表中获取记录。

示例

尝试以下示例以显示employee表中的所有记录。

<?php
   dbhost = 'localhost:3036';dbuser = 'root';
   dbpass = 'rootpassword';conn = mysql_connect(dbhost,dbuser, dbpass);

   if(!conn ) {
      die('Could not connect: ' . mysql_error());
   }

   sql = 'SELECT emp_id, emp_name, emp_salary FROM employee';
   mysql_select_db('test_db');retval = mysql_query( sql,conn );

   if(! retval ) {
      die('Could not get data: ' . mysql_error());
   }

   while(row = mysql_fetch_array(retval, MYSQL_ASSOC)) {
      echo "EMP ID :{row['emp_id']}  <br> ".
         "EMP NAME : {row['emp_name']} <br> ".
         "EMP SALARY : {row['emp_salary']} <br> ".
         "--------------------------------<br>";
   }

   echo "Fetched data successfully\n";

   mysql_close($conn);
?>

将行的内容分配给变量$row,然后打印行中的值。

注意 −在想要将数组值直接插入字符串时,始终记得加上花括号。

在上面的示例中,常量 MYSQL_ASSOC 用作mysql_fetch_array()的第二个参数,以便将行返回为关联数组。使用关联数组,您可以通过使用字段的名称而不是使用索引来访问字段。

PHP提供了另一个名为 mysql_fetch_assoc() 的函数,它也将行返回为关联数组。

示例

尝试以下示例,使用mysql_fetch_assoc()函数显示employee表中的所有记录。

<?php
   dbhost = 'localhost:3036';dbuser = 'root';
   dbpass = 'rootpassword';conn = mysql_connect(dbhost,dbuser, dbpass);

   if(!conn ) {
      die('Could not connect: ' . mysql_error());
   }

   sql = 'SELECT emp_id, emp_name, emp_salary FROM employee';
   mysql_select_db('test_db');retval = mysql_query( sql,conn );

   if(! retval ) {
      die('Could not get data: ' . mysql_error());
   }

   while(row = mysql_fetch_assoc(retval)) {
      echo "EMP ID :{row['emp_id']}  <br> ".
         "EMP NAME : {row['emp_name']} <br> ".
         "EMP SALARY : {row['emp_salary']} <br> ".
         "--------------------------------<br>";
   }

   echo "Fetched data successfully\n";

   mysql_close($conn);
?>

你还可以使用常量 MYSQL_NUM 作为mysql_fetch_array()的第二个参数。这将使函数返回一个带有数字索引的数组。

示例

请尝试以下示例,使用MYSQL_NUM参数从employee表中显示所有记录。

<?php
   dbhost = 'localhost:3036';dbuser = 'root';
   dbpass = 'rootpassword';conn = mysql_connect(dbhost,dbuser, dbpass);

   if(!conn ) {
      die('Could not connect: ' . mysql_error());
   }

   sql = 'SELECT emp_id, emp_name, emp_salary FROM employee';
   mysql_select_db('test_db');retval = mysql_query( sql,conn );

   if(! retval ) {
      die('Could not get data: ' . mysql_error());
   }

   while(row = mysql_fetch_array(retval, MYSQL_NUM)) {
      echo "EMP ID :{row[0]}  <br> ".
         "EMP NAME : {row[1]} <br> ".
         "EMP SALARY : {row[2]} <br> ".
         "--------------------------------<br>";
   }

   echo "Fetched data successfully\n";

   mysql_close($conn);
?>

以上三个示例都会产生相同的结果。

释放内存

在每个SELECT语句的末尾释放游标内存是一种良好的实践。可以通过使用PHP函数 mysql_free_result() 来实现。下面是一个示例,展示了如何使用它。

示例

尝试以下示例:

<?php
   dbhost = 'localhost:3036';dbuser = 'root';
   dbpass = 'rootpassword';conn = mysql_connect(dbhost,dbuser, dbpass);

   if(!conn ) {
      die('Could not connect: ' . mysql_error());
   }

   sql = 'SELECT emp_id, emp_name, emp_salary FROM employee';
   mysql_select_db('test_db');retval = mysql_query( sql,conn );

   if(! retval ) {
      die('Could not get data: ' . mysql_error());
   }

   while(row = mysql_fetch_array(retval, MYSQL_NUM)) {
      echo "EMP ID :{row[0]}  <br> ".
         "EMP NAME : {row[1]} <br> ".
         "EMP SALARY : {row[2]} <br> ".
         "--------------------------------<br>";
   }

   mysql_free_result(retval);
   echo "Fetched data successfully\n";

   mysql_close(conn);
?>

在获取数据时,您可以编写任意复杂的SQL语句。程序将与上述所述的相同。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程