我有以下对象,我通过AJAX帖子请求从Javascript解析为PHP。
使用PHP将此数据安全地插入SQL的最佳方法是什么?
对象的所有键都作为表中的列存在。所以我认为我需要找到一种方法来遍历对象并创建一个如下语句:
insert into table (email, first_name, last_name) VALUES ('email@host.net', 'Joe', 'Bloggs'),('email2@host2.net', 'Fred', 'Flintstone')
但是,我怀疑这种方法会让我面临SQL注入的风险。
我听说过准备好的声明'作为使用mysqli完成此操作的一种方法,我不确定这是否适用于sqlsrv。
这是我到目前为止所做的:
<?php
$serverName = "server";
$connInfo = array("Database"=>"database", "UID"=>"sa", "PWD"=>"password");
$conn = sqlsrv_connect($serverName, $connInfo);
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$json = file_get_contents("php://input");
$data = json_decode($json, true); /// <----- THIS IS THE OBJECT WHICH HAS BEEN PARSED FROM JS VIA AJAX
$sql = ""; /// <--- I need to create an insert statement???
/////Execute the statement
if($conn){
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}//end if
echo json_encode("Record created successfully. ");
}//end if
/////End of Execute the statement
}//end if
else{
echo json_encode("ERROR: record did not save correctly to MSSQL.");
die( print_r(sqlsrv_errors(), true));
}//end else
?>