php连接mysql

本文详细介绍了如何使用PHP连接MySQL数据库,包括创建数据库、数据表,插入、读取、更新和删除数据,以及使用预处理语句和ODBC连接。通过示例代码展示了SQL语句的使用和数据库交互过程。
摘要由CSDN通过智能技术生成
1、PHP 连接 MySQL
面向对象:建立连接eg
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error)
{
    die("Connection failed: " . $conn->connect_error);
}
?>
$conn->close();//最后关闭

2、PHP MySQL 创建数据库------语句CREATE DATABASE
$sql = "CREATE DATABASE myDB";
if ($conn->query($sql) === TRUE)
{
    echo "Database created successfully";
}
else
{
    echo "Error creating database: " . $conn->error;
}
3、创建数据表--------------------语句CreateTable
$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 ($conn->query($sql) === TRUE) 
{
    echo "Table MyGuests created successfully";
} 
else
{
    echo "Error creating table: " . $conn->error;
}
注意:
AUTO INCREMENT - 设置 MySQL 字段的值在新增记录时每次自动增长 1。

4、插入数据------------------语句INSERT INTO
注意:
a、PHP 中 SQL 查询语句必须使用引号
b、在 SQL 查询语句中的字符串值必须加引号,数值和NULL不需要引号

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";
if ($conn->query($sql) === TRUE)
{
    echo "New record created successfully";
} 
else
{
    echo "Error: " . $sql . "<br>" . $conn->error;
}
5、插入多条语句-----------------------mysqli_multi_query() 函数可用来执行多条SQL语句。
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com');";

$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Mary', 'Moe', 'mary@example.com');";

$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Julie', 'Dooley', 'julie@example.com')";

if ($conn->multi_query($sql) === TRUE)
{
    echo "New records created successfully";
} else
{
    echo "Error: " . $sql . "<br>" . $conn->error;
}
6、预处理语句-----防止 MySQL 注入,因为参数值发送后使用不同的协议,保证了数据的合法性。
主要用于执行多个相同的 SQL 语句,并且执行效率更高。
1)工作原理:
预处理:创建 SQL 语句模板并发送到数据库。预留的值使用参数 "?" 标记 。例如:INSERT INTO
 MyGuests (firstname, lastname, email) VALUES(?, ?, ?)
数据库解析,编译,对SQL语句模板执行查询优化,并存储结果不输出
执行:最后,将应用绑定的值传递给参数("?" 标记),数据库执行语句。应用可以多次执行语句,如果参数的值不一样。
2)优点:
相比于直接执行SQL语句,预处理语句有两个主要优点:
a、预处理语句大大减少了分析时间,只做了一次查询(虽然语句多次执行)
b、绑定参数减少了服务器带宽,你只需要发送查询的参数,而不是整个语句
$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?)");
$stmt->bind_param("sss", $firstname, $lastname, $email);
// 设置参数并执行
$firstname = "John";
$lastname = "Doe";
$email = "john@example.com";
$stmt->execute();

$firstname = "Mary";
$lastname = "Moe";
$email = "mary@example.com";
$stmt->execute();

echo "New records created successfully";
$stmt->close();
7、 读取数据-------------语句SELECT column_name(s) FROM table_name
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);

if ($result->num_rows > 0)
{
    // 输出每行数据
    while($row = $result->fetch_assoc())
    {
        echo "<br> id: ". $row["id"]. " - Name: ". $row["firstname"]. " " . $row["lastname"];
    }
} 
else
{
    echo "0 results";
}
8、 Where 子句
$result = mysqli_query($con,"SELECT * FROM Persons WHERE FirstName='Peter'");
while($row = mysqli_fetch_array($result))
{
    echo $row['FirstName'] . " " . $row['LastName'];
    echo "<br>";
}
9、Order By 关键词--------- 对记录集中的数据进行排序。
$result = mysqli_query($con,"SELECT * FROM Persons ORDER BY age");
while($row = mysqli_fetch_array($result))
{
    echo $row['FirstName']." " . $row['LastName']." " . $row['Age'];
    echo "<br>";
}
10、 Update
mysqli_query($con,"UPDATE Persons SET Age=36 WHERE FirstName='Peter' AND LastName='Griffin'");
11、Delete From
mysqli_query($con,"DELETE FROM Persons WHERE LastName='Griffin'");
12、ODBC连接
ODBC是一种应用程序编程接口,使我们有能力连接到某个数据源,只要ODBC连接是可用的,就可以通过ODBC连接去连接任意数据库。
1)创建ODBC连接步骤:
a、在控制面板中打开管理工具图标。
b、双击其中的数据源(ODBC)图标。
c、选择系统 DSN 选项卡。
d、点击系统 DSN 选项卡中的添加。
e、选择Microsoft Access Driver。点击完成。
f、在下一个界面,点击选择来定位数据库。
g、为数据库起一个数据源名(DSN)。
h、点击确定。
2)创建到达northwind 的 DSN 的连接,没有用户名和密码。然后创建并执行一条 SQL 语句:
 $conn=odbc_connect('northwind','','');
 $sql="SELECT * FROM customers";
 $rs=odbc_exec($conn,$sql); 
3)取回记录
odbc_fetch_row() 函数用于从结果集中返回记录。返回true或者false。
该函数有两个参数:ODBC 结果标识符和可选的行号:odbc_fetch_row($rs) 

从记录中取回字段:odbc_result() 函数用于从记录中读取字段。该函数有两个参数:ODBC 结果标识符和字段编号或名称。
从记录中返回第一个字段的值:$compname=odbc_result($rs,1); 
返回名为 "CompanyName" 的字段的值:$compname=odbc_result($rs,"CompanyName"); 
关闭 ODBC 连接:odbc_close($conn); 
eg:
<?php
$conn=odbc_connect('northwind','','');
if (!$conn)
{exit("Connection Failed: " . $conn);}
$sql="SELECT * FROM customers";
$rs=odbc_exec($conn,$sql);
if (!$rs)
{exit("Error in SQL");}
echo "<table><tr>";
echo "<th>Companyname</th>";
echo "<th>Contactname</th></tr>";
while (odbc_fetch_row($rs))
{
    $compname=odbc_result($rs,"CompanyName");
    $conname=odbc_result($rs,"ContactName");
    echo "<tr><td>$compname</td>";
    echo "<td>$conname</td></tr>";
}
odbc_close($conn);
echo "</table>";
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值