请解释什么是SQL注入攻击，并提供一个防止SQL注入攻击的示例代码。
SQL注入攻击是指攻击者在输入表单中插入恶意的SQL代码，以获取或破坏数据库中的数据，从而泄露敏感信息或者执行非法操作。

以下是一个防止SQL注入攻击的示例代码：

假设有一个用户登录表单，输入用户名和密码，在使用SQL查询检查用户名和密码时，我们可以采用参数化查询（prepared statement），如下所示：

```
import mysql.connector

# 建立数据库连接
db = mysql.connector.connect(
    host="localhost",
    user="root",
    password="password",
    database="mydatabase"
)

# 获取数据库指针
cursor = db.cursor()

# 准备SQL查询
sql = "SELECT * FROM users WHERE username = %s AND password = %s"
values = ("admin", "password123")

# 执行查询
cursor.execute(sql, values)

# 获取结果
result = cursor.fetchall()

# 关闭数据库连接
db.close()
```

这里的参数化查询可以避免在输入表单中插入恶意SQL代码，从而有效防止SQL注入攻击。