我有一个php
脚本,它接受用户输入并将其插入MySQL数据库。我想用插入脚本实现一些功能,a)确保只捕获可接受的字符,b)防止注入SQL
。
我有一个像这样的表单元素:
<input class="form-control" id="mrn" name="mrn" type="text" maxlength="17">
然后我在php
脚本中有以下内容:
// Gather the posted data into local variables
$mrn_demographics = mysqli_real_escape_string($db_connect,preg_replace('/[^a-zA-Z0-9]/', '', $_POST['mrn']));
// Form data error handling
if($mrn_demographics == "" ){
echo "The form submission is missing data.";
} else {
// End form data error handling
$sql = "INSERT INTO nys_demographics (
mrn
)
VALUES('$mrn_demographics')";
}
这是否达到了阻止SQL
注射的能力,并且使用mysqli_real_escape_string
是多余的,因为我也使用regex
来捕获我想要的东西,这是alpha - 数字字符。