set_charset
تابع set_charset «کاراکترست (Character Set)» پیش فرض اتصال را عوض می کند. کاراکترست یعنی نحوه رمزگذاری متن. مثل انتخاب زبان کیبورد در گوشی، اما برای داده های پایگاه داده.
تعریف کوتاه و کاربرد تنظیم کاراکترست mysqli
طبق منبع، set_charset() یا mysqli_set_charset() کاراکترست ارسال/دریافت داده بین برنامه و سرور را تعیین می کند. ابتدا کاراکترست فعلی را می خوانیم، سپس آن را به مثلاً utf8 تغییر می دهیم، و دوباره بررسی می کنیم.
نمونه کد (شیءگرا)
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli->connect_error;
exit();
}
echo "Initial character set is: " . $mysqli->character_set_name();
$mysqli->set_charset("utf8");
echo "Current character set is: " . $mysqli->character_set_name();
$mysqli->close();
?>
نمونه کد (رویه ای)
<?php
$con = mysqli_connect("localhost", "my_user", "my_password", "my_db");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit;
}
echo "Initial character set is: " . mysqli_character_set_name($con);
mysqli_set_charset($con, "utf8");
echo "Current character set is: " . mysqli_character_set_name($con);
mysqli_close($con);
?>
نحو و پارامترها
شیءگرا: $mysqli->set_charset(charset). رویه ای: mysqli_set_charset(connection, charset). پارامتر charset نام کاراکترست است. پارامتر connection همان اتصال فعال است.
گام های عملی
- اتصال بساز و خطا را بررسی کن.
- کاراکترست فعلی را نمایش بده.
- با
set_charsetرویutf8تنظیم کن. - دوباره کاراکترست فعلی را بررسی کن.
نکته: در ویندوز، نسخه مناسب کتابخانه کلاینت MySQL لازم است. همچنین قبل از اجرای کوئری حتماً کاراکترست را تنظیم کن تا حروف فارسی به هم نریزد.
جمع بندی سریع
- تنظیم کاراکترست mysqli جلوی به هم ریختگی متن را می گیرد.
- هر اتصال کاراکترست خودش را دارد.
utf8برای متن فارسی مناسب است.- پس از تنظیم، با
character_set_name()چک کن.