PHP连接MYSQL数据库
1.2 连接数据库

通过PHP做MySQL的客户端
1.2.1 开启mysqli扩展
在php.ini中开启mysqli扩展
extension=php_mysqli.dll
开启扩展后重启服务器,就可以使用mysqli_函数了,

1.2.2 连接数据库
mysqli_connect(主机IP,用户名,密码,数据库名,端口号) //如果端口号是3306可以省略 mysqli_connect_error():获取连接数据库的错误信息 mysqli_connect_errno():获取连接数据库的错误编码 mysqli_set_charset(连接对象,字符编码)
面向对象风格
<?php
$mysqli = new mysqli ( 'localhost', 'my_user', 'my_password', 'my_db');
/*
* This is the "official" OO way to do it,
* BUT $connect_error was broken until PHP 5.2.9 and 5.3.0.
*/
if ( $mysqli -> connect_error ) {
die('Connect Error('.$mysqli -> connect_errno.')'
.$mysqli -> connect_error);
}
/*
* Use this instead of $connect_error if you need to ensure
* compatibility with PHP versions prior to 5.2.9 and 5.3.0.
*/
if ( mysqli_connect_error()) {
die( 'Connect Error ('.mysqli_connect_errno().')'
.mysqli_connect_error());
}
echo 'Success... '.$mysqli -> host_info."\n" ;
$mysqli -> close();
?>
面向对象风格 when extending mysqli class
<?php
class foo_mysqli extends mysqli {
public function __construct ( $host, $user, $pass, $db ) {
parent :: __construct ( $host, $user, $pass, $db );
if ( mysqli_connect_error()) {
die( 'Connect Error ('.mysqli_connect_errno().') '
.mysqli_connect_error());
}
}
}
$db = new foo_mysqli ( 'localhost', 'my_user', 'my_password', 'my_db' );
echo 'Success... '.$db -> host_info."\n" ;
$db -> close();
?>
过程化风格
<?php
$conn = mysqli_connect ( 'localhost', 'my_user', 'my_password', 'my_db' ); //连接数据库
if (!$conn ) {
die('Connect Error('.mysqli_connect_errno().')'.mysqli_connect_error());
}
echo 'Success...'.mysqli_get_host_info($conn)."\n" ;
mysqli_close ( $conn ); //关闭数据库连接
?>
1.2.3 读写数据库
创建news数据库
<?php
// 连接数据库
$conn = mysqli_connect("localhost","peter","abc123");
// 检测连接
if (!$conn) {
die("连接失败: ".mysqli_connect_error());
}
mysql_select_db("my_db", $conn); //选择数据库
// 使用 sql 创建数据表
$sql = "CREATE TABLE Persons (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
FirstName VARCHAR(30) NOT NULL,
LastName VARCHAR(30) NOT NULL,
Age VARCHAR(50) NOT NULL,
addtime int NOT NULL, // '添加时间'
reg_date TIMESTAMP
)";
if (mysqli_query($conn, $sql)) {
echo "数据表 Persons 创建成功";
} else {
echo "创建数据表错误: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
思考:addtime时间字段可以用datetime类型,也可以使用int类型。一般用int,因为datetime占用8个字节,int占用4个字节。
执行SQL语句 使用 mysql_query() 函数。此函数用于向 MySQL 连接发送查询或命令 例子 在下面的例子中,我们创建了一个名为 "my_db" 的数据库:
<?php
$conn = mysqli_connect("localhost","peter","abc123");
if (!$conn)
{
die('Could not connect: '.mysql_error());
}
if (mysql_query("CREATE DATABASE my_db",$con))
{
echo "Database created";
}
else
{
echo "Error creating database: ".mysql_error();
}
mysqli_close($conn);
?>
向数据库表插入数据
<?php
$conn = mysql_connect("localhost","peter","abc123");
if (!$conn)
{
die('Could not connect: '.mysql_error());
}
mysql_select_db("my_db", $conn); //选择数据库
mysql_query("INSERT INTO Persons (FirstName, LastName, Age) VALUES ('Peter', 'Griffin', '35')");
mysql_query("INSERT INTO Persons (FirstName, LastName, Age) VALUES ('Glenn', 'Quagmire', '33')");
mysqli_close($conn);
?>
把来自表单的数据插入数据库
现在,我们创建一个 HTML 表单,这个表单可把新记录插入 "Persons" 表。
这是这个 HTML 表单:
<html>
<body>
<form action="insert.php" method="post">
Firstname: <input type="text" name="firstname" />
Lastname: <input type="text" name="lastname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>
当用户点击上例中 HTML 表单中的提交按钮时,表单数据被发送到 "insert.php"。"insert.php" 文件连接数据库,并通过 $_POST 变量从表单取回值。然后,mysql_query() 函数执行 INSERT INTO 语句,一条新的记录会添加到数据库表中。 下面是 "insert.php" 页面的代码:
<?php
$conn = mysqli_connect("localhost","peter","abc123");
if (!$conn)
{
die('Could not connect: '.mysql_error());
}
mysql_select_db("my_db", $conn); //选择数据库
$sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if (!mysql_query($sql,$conn))
{
die('Error: '.mysql_error());
}
echo "1 record added";
mysqli_close($conn)
?>
声明:本站部分文章,来源于互联网收集分享。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
转载本文注明出处:http://www.suuxx.com/blog/a/9DB51DD9D683E03A.html
留言评论