PHP中访问MySQL数据库

开发平台的具体情况就不多说了,请查看前面的文章。昨天基本掌握了PHP的基础语法,今天开始学习其中MySQL的操作。

说实话,我对数据库,对SQL基本上是一窍不通,硕士研究生面试前去找过一个熟识的老师,那老师问我数据库各个范式的内容,我完全茫然~~~不过也不能完全怪我,怎么说我本科也是学光电的,能知道数据库是什么东西已经不算很烂了。哎,扯远了,回到正题。

首先要在MySQL中创建所需的数据库,表,并输入数据。当然,这些都可以在PHP中完成,但是为了学习方便,还是先输入些数据。从全新安装的MySQL开始。

root用户登录:

****@ubuntu:~# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 26 to server version: 5.0.22-Debian_0ubuntu6.06.6-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

创建一个用户chen:

GRANT   PRIVILEGES   ON   * . *   TO   ' chen '  IDENTIFIED  BY   ' PASSWD ' ;

稍做一下解释,*.*说明该用户可以访问所有数据库的所有表,当然也可以对其做出限制。
然后退出:
 exit

用刚刚新建的用户登录MySQL:

****@ubuntu:~# mysql -u chen -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 27 to server version: 5.0.22-Debian_0ubuntu6.06.6-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

接着我们来创建一个名为family的数据库用来存放家人的信息:

CREATE   DATABASE  family;

这里要注意一个问题,我查看到有些书中使用的是这个语句:

CREATE   DATABASE   ' family ';

这个命令在我的系统上会报错:

mysql > CREATE DATABASE 'family';
ERROR 
1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''family'' at line 1

其中的原因暂时不去深究了,估计又是个版本问题。
切换到刚刚创建的family数据库:
USE  family;
接着创建表:
CREATE   TABLE  phonenum (
id 
INT   NOT   NULL  AUTO_INCREMENT,
name 
VARCHAR  ( 100 ),
phone 
INT ,
PRIMARY   KEY  (id));
插入两行内容为后面的读取准备数据:
INSERT   INTO  family  VALUES  ( 1 ' Zhang San ' 1234567 );
INSERT   INTO  family  VALUES  ( 2 ' li Si ' 7654321 );
So far,MySQL数据库中的操作完成。接下来转移到PHP中去。

首先是连接MySQL:
< html >
< head >
    
< title > Hi PHP </ title >
</ head >

< body >
    
<? php
    
// MySQL Connect to database
     $connection   =   mysql_connect ( ' localhost ' ,   ' chen ' ,   ' passwd ' );
    
if ( ! $connection ){
        
die ( " Could not connect to the database: <br /> " . mysql_error ());
    }
    
else {
        
echo   " Connected successful!<br /> " ;
    }
</ body >
</ html >
mysql_connect函数就是用来连接MySQL的,关于其参数的详细信息请查看PHP的manual。
打开浏览器测试一下,应该是没问题。然后再加上连接数据库,获取数据,并显示到网页上的代码:
< html >
< head >
    
< title > Hi PHP </ title >
</ head >

< body >
    
<? php
    
// MySQL Connect to database
     $connection   =   mysql_connect ( ' localhost ' ,   ' chen ' ,   ' passwd ' );
    
if ( ! $connection ){
        
die ( " Could not connect to the database: <br /> " . mysql_error ());
    }
    
else {
        
echo   " Connected successful!<br /> " ;
    }
    
    
// MySQL Select database
     $db_select   =   mysql_select_db ( 'family ');
    
if(!$db_select){
        
die("Select database failed: <br />".mysql_error());
    }
    
else{
        
echo "Selected store database successful!<br />";
    }
    
    
//MySQL query
    $result = mysql_query('select * from authors');
    
if(!$result){
        
die("Query Failed: <br />".mysql_error());
    }
    
else{
        
echo "query successful!<br />";
    }    
    
    
//MySQL Another way to do the same work
    while($row = mysql_fetch_array($result, MYSQL_ASSOC))
    {
        
echo "OK<br />";
        
echo $row[id].",".$row[name].",".$row[phone].'<br />';
    }
    
    
//MySQL Close connect
    mysql_close($connection);
    
?>
</body>
</html>
很简单,不过来看看这段代码会有什么问题:
< html >
< head >
    
< title > Hi PHP </ title >
</ head >

< body >
    
<? php
    
// MySQL Connect to database
     $connection   =   mysql_connect ( ' localhost ' ,   ' chen ' ,   ' passwd ' );
    
if ( ! $connection ){
        
die ( " Could not connect to the database: <br /> " . mysql_error ());
    }
    
else {
        
echo   " Connected successful!<br /> " ;
    }
    
    
// MySQL Select database
     $db_select   =   mysql_select_db ( ' family ' );
    
if ( ! $db_select ){
        
die ( " Select database failed: <br /> " . mysql_error ());
    }
    
else {
        
echo   " Selected store database successful!<br /> " ;
    }
    
    
// MySQL query
     $result   =   mysql_query ( ' select * from authors ' );
    
if ( ! $result ){
        
die ( " Query Failed: <br /> " . mysql_error ());
    }
    
else {
        
echo   " query successful!<br /> " ;
    }
    
    
// MySQL Fetch query results, and show it to user
     while ( $result_row   =   mysql_fetch_row ( $result )){
        
foreach ( $result_row   as   $value )
        {
            
echo   $value . ' , ' ;
        }
        
echo   ' <br /> ' ;
    }
    
    
// MySQL Another way to do the same work
     while ( $row   =   mysql_fetch_array ( $result ,  MYSQL_ASSOC))
    {
        
echo   " OK<br /> " ;
        
echo   $row [id] . " , " . $row [name] . " , " . $row [phone] . ' <br /> ' ;
    }
    
    
// MySQL Close connect
     mysql_close ( $connection );
    
?>
</ body >
</ html >
呵呵,后面这段代码加了段也是显示数据库内容的代码

知道整段代码有什么问题吗?过两天再来更新~~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值