在本章中,我们将学习如何从表中选择数据。
select语句检索所选行。 它们可以包括union语句,排序子句,limit子句,where子句,group by ... having子句和子查询。
查看以下一般语法 -
select field, field2,... from table_name, table_name2,... where...
select语句提供了多个选项来指定使用的表 -
database_name.table_name
table_name.column_name
database_name.table_name.column_name
所有select语句必须包含一个或多个select表达式。 选择表达式由以下选项之一组成 -
列名。
使用运算符和函数的表达式。
规范"table_name.*"以选择给定表中的所有列。
字符"*"用于从from子句中指定的所有表中选择所有列。
可以在执行select语句时使用命令提示符或php脚本。
在命令提示符下,执行如下语句:
root@host# mysql -u root -p password; enter password:******* mysql> use products; database changed mysql> select * from products_tbl +-------------+---------------+ | id_number | nomenclature | +-------------+---------------+ | 12345 | orbitron 4000 | +-------------+---------------+
在php函数中使用相同的select语句来执行操作。 您将再次使用mysql_query()函数。 查看下面给出的示例 -
<?php $dbhost = 'localhost:3036'; $dbuser = 'root'; $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('could not connect: ' . mysql_error()); } $sql = 'select product_id, product_name,product_manufacturer, ship_date from products_tbl'; mysql_select_db('products'); $retval = mysql_query( $sql, $conn ); if(! $retval ) { die('could not get data: ' . mysql_error()); } while($row = mysql_fetch_array($retval, mysql_assoc)) { echo "product id :{$row['product_id']} <br> ". "name: {$row['product_name']} <br> ". "manufacturer: {$row['product_manufacturer']} <br> ". "ship date : {$row['ship_date']} <br>". "--------------------------------<br>"; } echo "fetched data successfully "; mysql_close($conn); ?>
在成功的数据检索,你会看到下面的输出 -
product id: 12345 nomenclature: orbitron 4000 manufacturer: xyz corp ship date: 01/01/17 ---------------------------------------------- product id: 12346 nomenclature: orbitron 3000 manufacturer: xyz corp ship date: 01/02/17 ---------------------------------------------- mysql> fetched data successfully
最佳实践建议在每个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 product_id, product_name, product_manufacturer, ship_date from products_tbl'; mysql_select_db('products'); $retval = mysql_query( $sql, $conn ); if(! $retval ) { die('could not get data: ' . mysql_error()); } while($row = mysql_fetch_array($retval, mysql_num)) { echo "product id :{$row[0]} <br> ". "name: {$row[1]} <br> ". "manufacturer: {$row[2]} <br> ". "ship date : {$row[3]} <br> ". "--------------------------------<br>"; } mysql_free_result($retval); echo "fetched data successfully "; mysql_close($conn); ?>