2016-06-11 8 views
1

こんにちは!mysqlのキリル文字のトラブルシューティング

私には1つの質問があります:私はキリル文字のデータを持っています。ここで問題にされています 不正な文字列値:行1

の列「タイトル」の'\xD0\xBD\xD0\xBE\xD0\xB2...'は、ここに私のコードは次のとおりです。任意のヘルプ

$link = mysql_connect('localhost', 'root', 'pass'); 
if($link&&isset($_POST['addSticker'])){ 
    $title = $_POST['title']; 
    $description = $_POST['description']; 
    $photo = mysql_real_escape_string(urlencode($_POST['photo'])); 
    $quantity = $_POST['quantity']; 
    $price = $_POST['price']; 
    mysql_select_db('db_name'); 
    $sql = "INSERT INTO table (title, description, photo, quantity, price) VALUES ('$title', '$description', '$photo', '$quantity', '$price');"; 
    mysql_query("SET NAMES utf8", $link); 
    mysql_query($sql, $link) or die(mysql_error()); 
} 

感謝。

+0

あなたの投稿を編集してコードとしてコードを書いてください(マウスで選択)し、CTRL-Kを押してください。現在フォーマットされている方法は読みにくいです。 – PerlDuck

+0

申し訳ありませんが、私はこのサイトの全く新しいです.. – Sasha

+0

問題はありません。私たちはすべて一度でした。編集に感謝します。 Btw:ロシアのhttp://ru.stackoverflow.com/にもStackoverflowがあります(あなたが知らなかった場合に備えて)。 – PerlDuck

答えて

1

最初に、あなたのクエリはSQLインジェクションに脆弱です。 escape your characters(MySQLi)にお勧めします。これはあなたの問題を解決するかもしれません。もう1つは、まだ廃止予定のmysql APIを使用していることです。代わりに、PDOまたはmysqli APIに切り替える必要があります。照合順序が悪い場合(エスケープ入力が助けにならない場合)、データベースでこれらの文字を認識できるように、照合順序をtheseのいずれかに変更することもできます。

+0

@Sergio Tulentsev編集をありがとう。気づかなかった –

関連する問題