当前位置:首页 > 行业动态 > 正文

mysql 占位符

MySQL 占位符是用于在 SQL 语句中插入变量值的符号,通常使用百分号(%)表示。

MySQL 占位符是在 SQL 语句中使用的,用于表示将要插入的值,在执行 SQL 语句时,占位符会被实际的值替换,MySQL 支持两种类型的占位符:参数化查询和绑定变量。

mysql 占位符  第1张

1、参数化查询

参数化查询是一种将数据与 SQL 语句分开的方法,以防止 SQL 注入攻击,在参数化查询中,占位符用问号(?)表示。

假设我们有一个名为 users 的表,其中包含 id、username 和 email 列,我们想要插入一条新记录,可以使用以下参数化查询:

INSERT INTO users (username, email) VALUES (?, ?);

我们可以使用编程语言(如 PHP、Python 或 Java)来设置占位符的值,并执行 SQL 语句。

以 PHP 为例:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn>connect_error) {
    die("连接失败: " . $conn>connect_error);
}
// 准备要插入的数据
$username = "newUser";
$email = "newuser@example.com";
// 执行参数化查询
$stmt = $conn>prepare("INSERT INTO users (username, email) VALUES (?, ?)");
$stmt>bind_param("ss", $username, $email);
$stmt>execute();
echo "新记录插入成功";
$stmt>close();
$conn>close();
?>

2、绑定变量

绑定变量是另一种将数据与 SQL 语句分开的方法,它允许我们在 SQL 语句中直接使用变量名,而不是使用占位符,绑定变量可以提高性能,因为它们不需要进行字符串拼接。

我们可以使用以下绑定变量来插入一条新记录:

INSERT INTO users (username, email) VALUES (:username, :email);

我们可以使用编程语言(如 PHP、Python 或 Java)来设置变量的值,并执行 SQL 语句,以 PHP 为例:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn>connect_error) {
    die("连接失败: " . $conn>connect_error);
}
// 准备要插入的数据
$username = "newUser";
$email = "newuser@example.com";
// 执行绑定变量查询
$stmt = $conn>prepare("INSERT INTO users (username, email) VALUES (:username, :email)");
$stmt>bind_param("ss", $username, $email);
$stmt>execute();
echo "新记录插入成功";
$stmt>close();
$conn>close();
?>
0