PHP MySQL
PHP是一种脚本语言,主要用于开发Web应用程序,我们必须在数据库中激活用户数据。最流行的开源数据库是MySQL,它是使用最广泛的PHP数据库之一。
在本教程中,我们将学习远程连接数据库,然后对表执行SQL查询。
如果您不知道如何编写SQL查询,可以学习我们的SQL教程。
我们可以使用mysqli
或PDO
将PHP与MySQL
一起使用。在本教程中,我们将介绍支持12种语言的PDO,并支持防止SQL注入的预准备语句。
PDO安装
请遵循以下说明:http://php.net/manual/en/pdo.installation.php
连接到MySQL服务器
在我们可以执行任何查询之前,我们首先需要连接到MySQL服务器。以下是使用PDO连接MySQL服务器的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php // server details $servername = "localhost"; $username = "username"; $password = "password"; try { $conn = new PDO("mysql:host=$servername; dbname=myDB", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connected successfully"; } catch(PDOException $e) { echo "Connection failed: " . $e->getMessage(); } ?> |
在上面的代码中,您需要根据服务器详细信息更改用户名和密码。
关闭连接
完成后,最好关闭与MySQL服务器的连接。
这很简单,我们只需将连接对象设置为null
,如下所示:
1 2 3 4 5 6 | <?php // disconnect MySQL server connection $conn = null; ?> |
创建数据库
数据库包含一个或多个存储数据的表。
我们可以使用PHP在MySQL中使用PDO
语句创建数据库来执行CREATE SQL
查询。
以下是代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <?php // connect to MySQL server $servername = "localhost"; $username = "username"; $password = "password"; try { $conn = new PDO("mysql:host=$servername", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // sql query to create database $sql = "CREATE DATABASE myDBPDO"; // use exec() because no results are returned $conn->exec($sql); echo "Database created successfully <br/>"; } catch(PDOException $e) { echo $sql . "<br/>" . $e->getMessage(); } // disconnecting from MySQL server $conn = null; ?> |
PDO提供异常处理,因此它比mysqli更好,因为在数据库上执行SQL查询时很可能发生异常。
就像上面的代码一样,我们可以在变量中提供任何SQL查询,$sql并使用该exec()函数来执行查询。
创建一个表
就像创建数据库一样,我们也可以创建一个表,我们所要做的就是$sql将代码中的变量中的SQL查询更改为创建表的查询。
以下是创建表User的示例查询,其中包含userid
,email
,password
和fullname
列。
1 2 3 4 5 6 7 | // sql query to create table $sql = "CREATE TABLE User ( userid INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, email VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, fullname VARCHAR(50) )"; |
以下是供您参考的完整代码,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <?php // connect to MySQL server $servername = "localhost"; $username = "username"; $password = "password"; try { $conn = new PDO("mysql:host=$servername", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // sql query to create table $sql = "CREATE TABLE User ( userid INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, email VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, fullname VARCHAR(50) )"; // use exec() because no results are returned $conn->exec($sql); echo "Table created successfully <br/>"; } catch(PDOException $e) { echo $sql . "<br/>" . $e->getMessage(); } // disconnecting from MySQL server $conn = null; ?> |
将数据插入表中
创建表后,下一步是将数据输入表中。要将数据输入表格,我们必须遵循以下规则:
- 如果要插入的值是字符串,我们必须将其括在引号中。
- 数字值不得括在引号中。
- NULL 不得用引号括起来。
- 如果表中的列是,AUTO_INCREMENT那么我们不必在该列中插入数据,它将自动插入表中。
SQL查询将是
1 2 3 | // sql query to insert data into table $sql = "INSERT INTO User (email, password, fullname) VALUES ('admin@sky8g.com', 'IKilledBoogieMan', 'John Wick')"; |
我们所要做的就是将变量的值更改为$sql上面的查询,剩下的代码将保持不变,就像创建表和创建数据库一样。
从表中删除数据
就像我们执行插入SQL语句一样,我们可以执行delete SQL语句来删除表中的数据。
1 2 | // sql query to delete data into table $sql = "DELETE FROM User WHERE userid=1"; |
剩余的完整代码将保持不变。
从表中选择数据
从表中选择数据与其他操作略有不同。如果我们必须从表中选择多行数据,那么我们必须fetch()
在循环中执行该方法。
让我们看一个示例,我们必须从表User
返回所有数据。下面是SQL执行部分,考虑到我们已经设置了MySQL连接,并且$conn
连接对象中也提供了相同的连接。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // sql query to select data from User table $stmt = $conn->prepare("SELECT userid, email, fullname FROM User"); // declaring an array to store the data $data = array(); // execute the sql statement $stmt->execute(); // loop to fetch all the rows while($row = $stmt->fetch(PDO::FETCH_OBJ)) { $data[] = $row; } // close the connection $conn = null; // return the data return $data; |
结论
这是PHP高级教程的结束,但一开始,我们将不断添加更多概念,示例,代码片段和教程,以帮助您学习这种神奇的脚本语言,敬请期待!
如有任何疑问或疑问,请在下方留言提问。
学习了,顺便问一下换友链吗
你好,由于网站刚刚建立暂时不适合申请友联,谢谢理解。
好的