簡體   English   中英

插入表格時無法使用符號(php / sql)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM