是的,您可以通过 pdo 和 mysqli 防止 sql 注入
<< 查看演示 >>
使用 PDO:
步骤 - 1:连接数据库
在这里我创建数据库“inphplab”。您可以根据您的要求进行更改。
$dbConnection = new PDO('mysql:dbname=inphplab;host=127.0.0.1;charset=utf8', 'root', '');
$dbConnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
步骤 - 2:将数据插入表“员工”
在这里,我采用两个变量并声明名称和地址,如下所示。
$name = "bapuRocks";
$address = "India";
$stmt = $dbConnection->prepare("INSERT INTO employee ( name, address) VALUES ( :name, :address )");
$stmt->bindValue(':name', $name);
$stmt->bindValue(':address', $address);
printf("%s Row inserted.\n", $stmt->execute());
使用 MySQLi:
步骤 - 1:连接数据库
在这里我创建数据库“inphplab”。您可以根据您的要求进行更改。
$mysqli = new mysqli('localhost', 'root', '', 'inphplab');
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
步骤 - 2:将数据插入/删除表“员工”
在这里,我采用两个变量并声明名称和地址,如下所示。
$stmt = $mysqli->prepare("INSERT INTO employee SET `name`=?,`address`=?");
$stmt->bind_param('ss', $name, $address);
$name = 'Yuvraj Sinh';
$address = 'India';
/* execute prepared statement */
$stmt->execute();
printf("%s Row inserted.\n", $stmt->affected_rows);
/* close statement and connection */
$stmt->close();
/* Clean up table CountryLanguage */
$mysqli->query("DELETE FROM employee WHERE name='Bharat Sinh'");
printf("%s Row deleted.\n", $mysqli->affected_rows);
/* close connection */
$mysqli->close();