2017-03-19 7 views
-1

テーブルuser_contentにはid、context_text、email_last_editという列があります。MySQL PHP - テキストを更新できません

<h1><b>Mitglied</b></h1><br><b>Community</b> 
<b>Kurzprofil</b>,ß<b>Community-Bereich</b<b>Chats</b>. 

残念ながら、すべての更新が列content_textが0になる。 が、私はそれを考える:私は同じPHPページにポストを経由して、このテキストを送信

$content_text1 = utf8_decode($_POST['content_text1']); 
$conn = new mysqli($servername, $username, $password, $dbname); 
    // Check connection 
    if ($conn->connect_error) { 
    die("Datenbankverbindung fehlerhaft: " . $conn->connect_error); 
    } 

    $sql = 'UPDATE user_content SET content_text="' . $content_text1 . '" AND email_last_edit="' . $email . '" WHERE id=1'; 

    if ($conn->query($sql) === TRUE) { 

    //echo "New record created successfully"; 

    } else { 

    echo "Datenbank-Fehler: " . $sql . "<br>" . $conn->error; 

    } 

    $conn->close(); 

は、これは私の更新方法でありますテキスト内の特殊文字に問題がありますが、uft8_decode()はこの問題を解決しません。

誰にも解決策がありますか? どうもありがとう:)

+0

RTM HTTPSすぎパラメータをエスケープする必要が

: //dev.mysql.com/doc/refman/5.7/en/update.html - これは誤字です。 –

+5

あなたのスクリプトは[SQL Injection Attack]の危険にさらされています(http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)[Little Bobby Tables](http://bobby-tables.com/)[あなたが入力を逃れている場合でも、その安全ではありません!](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around -mysql-real-escape-string)[prepared parameterized statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)を使用します。 –

+0

fillinsをエスケープします。 '=== TRUE'の代わりに'!== FALSE'を使用してください。 –

答えて

0

変更が

$sql = 'UPDATE user_content SET content_text="' . $content_text1 . '" , email_last_edit="' . $email . '" WHERE id=1'; 

によってあなたのクエリは削除 'AND' とに置き換え '' あなたは、セキュリティ上の理由から

関連する問題