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
留言评论