占位符PHP
■ “占位符”的意思是
防止SQL注入攻擊(第三方對數據庫執行不必要的SQL)等方法。以防止惡意第三方執行未被開發人員預期的命令,刪除數據表等操作。
即使意外输入了非法值,第三方也无法执行SQL命令。
在SQL语句中直接写入PHP变量是不允许的!
SQL注入很容易实现!!
//■ダメな例
$sql = "SELECT * FROM user WHERE name= '$name'";
■使用占位符。
可以使用冒号(:)来指定变动的位置。在字符串列中,不需要使用单引号。
将占位符的名称设置为与列名相同可以更容易理解。
$sql = "SELECT * FROM user WHERE name= :name";
绑定实际值到占位符上。
在这里指定使用占位符。
$sql = "SELECT * FROM user WHERE name= :name";
//bindValue('プレースホルダ名',バインドするデータ,データの型);
bindValue(':name', $name, PDO::PARAM_STR);
参数类型:文字型:PARAM_STR、数值型:PARAM_INT、大型对象(如图像数据):PARAM_LOB、空值:PARAM_NULL。