رفتن به مطلب
  • 0

سوال

سلام.

من برای صفحه ثبت نام نرم افزارم این کد php رو توی دیتابیس نوشتم:

<?php
    $db_servername = "mysql:host=localhost;dbname=************";
    $db_username = "**************";
    $db_password = "***********";
    
$db = new PDO($db_servername, $db_username, $db_password);

if (isset($_POST['user_name'])) {
    $user_old = $db->query('SELECT COUNT(id) AS count_id FROM users WHERE user_name="' . $_POST['user_name'] . '"');
    $result = $user_old->fetch();
    $c = $result['count_id'];
    if ($c > 0) {
        echo 'old';
    }

    else {
        mysqli_query($db,"SET NAMES ='utf8'");
        mysqli_query($db,"SET CHARACTER SET ='utf8'");
        mysqli_query($db,"SET character_set_connection = 'utf8'");
        $db = $db->query('INSERT INTO users SET user_name="'. $_POST['user_name'] . '" , pass_word="' .$_POST['pass_word'] . '" ');
        echo 'new';
    }
}

 

از قسمت else به بعد که بهش گفتم utf8 رو پشتیبانی کنه بهم خطا میده. مشکلش چیه؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

6 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

 
mysql_query(“SET CHARACTER SET utf8″);

یا

mysqli_query($db, "SET NAMES utf8");

 

 

این خط رو اول صفحه زیر $db اضافه کنید و تست کنید

3تا خط پایینی رو حذف کنید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

من خودم همیشه به این صورت استفاده میکنم و مشکلی نداشتم

<?php
header('Content-Type: text/html; charset=utf-8');
$servername = "localhost";
$username = "****";
$password = "****";
$dbname = "*****";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
mysqli_query($conn,"SET character_set_results = 'utf8'");// Check connection

    mysqli_query($con,"SET NAMES utf8");
    mysqli_query($con,"SET CHARACTER SET utf8");

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر


Warning: mysqli_query() expects parameter 1 to be mysqli, object given in /home/learnir4/public_html/ashpazi/signin.php on line 7

Warning: mysqli_query() expects parameter 1 to be mysqli, object given in /home/learnir4/public_html/ashpazi/signin.php on line 8

Warning: mysqli_query() expects parameter 1 to be mysqli, object given in /home/learnir4/public_html/ashpazi/signin.php on line 9

 

بازم این خطاهارو داد

لینک ارسال
به اشتراک گذاری در سایت های دیگر

وقتی که با mysqli_connect به دیتابیس وصل میشیم از mysqli_query استفاده میکنیم.

وقتی که با mysql_connect به دیتابیس وصل میشیم از mysql_query استفاده میکنیم.

من برای اتصال به دیتابیس از new PDO استفاده کردم و برای query زدن از mysqli_query استفاده کردم. احتمالش هست مشکلش از اینجا باشه؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

نمی تونید روش های مختلف رو ترکیب کنید ، اگه بشه هم قشنگ نیست این حرکت

یا از

PDO

استفاده کنید یا

mysqli 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

با PDO چطوری بهش بفهمونم که utf8 رو پشتیبانی کنه؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...