[英]Can't use symbols when inserting into table(php/sql)
如果該文本包含一些符號(例如“”,?,腳本或某些sql標記),則在從我的站點添加一些文本時遇到問題。
這是一些代碼,希望這足夠了:)
if(isset($_POST['submit_achievement'])){
$title = $_POST['title_field'];
$description = $_POST['description_field'];
$sql2 = 'INSERT INTO achievements (title,description) VALUES (' . '"' .$title . '"'. "," . '"' . $description . '"' . ')';
$records2 = mysqli_query($conn,$sql2);
}
如果您需要我的代碼中的更多行,只需編寫,非常感謝! :)
這里的問題是您沒有使用准備好的語句,並且沒有正確地轉義內容,因此某些符號與SQL沖突。 一般而言,這意味着您容易受到SQL注入錯誤的攻擊。
切換到使用參數化查詢和bind_param
來解決此問題:
$stmt = mysqli_prepare($conn, "INSERT INTO achievements (title, description) VALUES (?,?)");
$stmt->bind_param("ss", $_POST['title_field'], $_POST['description_field']);
請注意,請避免將多余的內容放在_field
類的_field
。 如果是表單提交,則假定為字段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.