PHP中访问MySQL数据库

本文介绍了如何使用PHP连接MySQL数据库,并通过实例演示了如何创建数据库、表及插入数据,最后展示了如何在PHP中查询并显示数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发平台的具体情况就不多说了,请查看前面的文章。昨天基本掌握了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、付费专栏及课程。

余额充值