原创  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>
呵呵,后面这段代码加了段也是显示数据库内容的代码

知道整段代码有什么问题吗?过两天再来更新~~

发表于 @ 2008年02月05日 00:43:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:PHP中file_put_contents()函数的兼容性问题 | 新一篇:Ubuntu 6.06.2安装ICC 8.1

  • 发表评论
  • 评论内容:
  •  
Copyright © oldbeggar
Powered by CSDN Blog