先说一下我踩了三天的坑
我在这之前用mysql申请了一个数据库,然后用php连接一直连接不上,试了许多办法,都不行
下载MySQL时显示3306端口被占用,所以选了3307
一直报错,三天后,终于知道了,你用的数据库必须能和php建立连接,如果你用phpstudy的话,phpstudy有内置的,直接打开用就行;
先说正确的
php连接数据库
用到了
mysqli_connect("$host","$user","$pass","t2","3306");
函数,里面参数分别是地址,用户名,密码,选择的数据表,端口号(默认3306,估计3306端口就是被phpstudy占用的)
注意:php高级版本中,弃用了mysql
相关函数
<?php
header("Content-type:text/html;charset=utf-8");$host = '127.0.0.1';
$user = 'root';
$pass = 'root';
$port=3306;$link=@mysqli_connect("$host","$user","$pass","t2","3306");
@mysqli_set_charset($link,"utf8");
if(!$link)
{echo '数据库连接失败:';
}
else
{echo "链接成功";
}?>
新建数据表
sql中,数据表新建用CREAT TABLE[IF NOT EXISTS] db_name (column_name data_type,..........);
php中,用mysql_query()
函数运行
//新建表,table——name为:MyGuests,
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
if(mysqli_query($link,$sql))
{echo "创建数据表错误!";
}
else{echo "创建成功";
}
插入记录
用mysqli_select_db($link,'db_name')
选择数据表
插入数据的语句:INSERT [INTO] db_name[(col_name........)] VALUE(val..............);
mysqli_select_db($link,'study');
$name="aaaaa";
$id=170650;
$sex="boy";
$sq = "insert into study(id,name,sex) VALUE ('$id','$name','$sex')";
if (mysqli_query($link,$sq))
{
echo"success!";
}
查找记录
查找记录命令:select * from db_name;
引用慕课网:
。
PHP有多个函数可以获取数据集中的一行数据,最常用的是mysql_fetch_array
,可以通过设定参数来更改行数据的下标,默认的会包含数字索引的下标以及字段名的关联索引下标。$sql = "select * from user limit 1"; $result = mysql_query($sql); $row = mysql_fetch_array($result);
可以通过设定参数
MYSQL_NUM
只获取数字索引数组,等同于mysql_fetch_row
函数,如果设定参数为MYSQL_ASSOC
则只获取关联索引数组,等同于mysql_fetch_assoc
函数。$row = mysql_fetch_row($result); $row = mysql_fetch_array($result, MYSQL_NUM);
//这两个方法获取的数据是一样的
$row = mysql_fetch_assoc($result); $row = mysql_fetch_array($result, MYSQL_ASSOC);
如果要获取数据集中的所有数据,我们通过循环来遍历整个结果集。
$data = array(); while ($row = mysql_fetch_array($result)) {$data[] = $row; }
$find="select * from study;";
$result=mysqli_query($link,$find);
$row=mysqli_fetch_array($result);
print_r($row);