Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > insert ค่าเข้ามาในดาต้าเบตแล้วไม่เป็นภาษาไทยค่ะ สอบถามรายละเอียดเล็กๆน้อยๆ



 

insert ค่าเข้ามาในดาต้าเบตแล้วไม่เป็นภาษาไทยค่ะ สอบถามรายละเอียดเล็กๆน้อยๆ

 



Topic : 129756



โพสกระทู้ ( 32 )
บทความ ( 0 )



สถานะออฟไลน์




ตามหัวข้อเลยค่ะ
ตั้งค่าใน database แบบนี้

1

หลังจาก insert
ภาษาแปลกๆ


อันนี้หน้าที่ไว้ใช้ insert 2 ตารางใน 1 ฟอร์ม
Code (PHP)
<?php
require 'connectdb.php';
        
        $login_username = $_POST['username'];
        $login_password = $_POST['password'];
        $login_email = $_POST['email'];
        $firstname = $_POST['firstname'];
        $last_name = $_POST['lastname'];
        $nickname = $_POST['nickname'];
        $address = $_POST['address'];
        $phone = $_POST['phone'];
        
        //เข้ารหัส รหัสผ่าน
        $salt = 'tikde78uj4ujuhlaoikiksakeidke';
        $hash_login_password = hash_hmac('sha256', $login_password, $salt);
        
        //เป็นการเซ็ตค่าให้เป็นภาษาไทยในกรณีที่ภายในcollation เป็นประเภทอื่นที่ไม่ใช่ utf8_unicode_ci
        mysqli_query("SET character_set_results=utf8");
        mysqli_query("SET character_set_client=utf8");
        mysqli_query("SET character_set_connection=utf8"); 
        
        
        $query = "INSERT INTO tb_login (login_username,login_password,login_email) VALUES ('$login_username','$hash_login_password','$login_email')";
        $result = mysqli_query($dbcon,$query);
        $query2="INSERT INTO student (firstname_s,lastname_s,nickname_s,address_s,phone_s,email_s) VALUES ('$firstname','$last_name','$nickname','$address','$phone','$login_email')";
        $result2 = mysqli_query ($dbcon,$query2);
        if ($result&&$result2) {
            header("Location: index.php");
        } else {
            echo "เกิดข้อผิดพลาด ".  mysqli_error($dbcon);
        }
       
        mysqli_close($dbcon);




หน้าที่ไว้เชื่อมใน database
Code (PHP)
<?php
$dbcon = new mysqli('localhost','root','','enggoal');
if($dbcon->connect_error){
die('Connect Error: ' . $dbcon->connect_error);
}

mysqli_query("SET character_set_results=utf8");
mysqli_query("SET character_set_client=utf8");
mysqli_query("SET character_set_connection=utf8"); 

?>




Tag : PHP, MySQL









ประวัติการแก้ไข
2017-12-20 21:22:01
2017-12-20 21:23:36
2017-12-20 21:39:12
2017-12-21 02:16:48
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-12-20 21:21:05 By : ny2003 View : 1106 Reply : 13
 

 

No. 1



โพสกระทู้ ( 80 )
บทความ ( 0 )



สถานะออฟไลน์


Code (PHP)
<?php
require 'connectdb.php';
        
        $login_username = $_POST['username'];
        $login_password = $_POST['password'];
        $login_email = $_POST['email'];
        $firstname = $_POST['firstname'];
        $last_name = $_POST['lastname'];
        $nickname = $_POST['nickname'];
        $address = $_POST['address'];
        $phone = $_POST['phone'];
        
        //เข้ารหัส รหัสผ่าน
        $salt = 'tikde78uj4ujuhlaoikiksakeidke';
        $hash_login_password = hash_hmac('sha256', $login_password, $salt);
        
        //เป็นการเซ็ตค่าให้เป็นภาษาไทยในกรณีที่ภายในcollation เป็นประเภทอื่นที่ไม่ใช่ utf8_unicode_ci
        //mysqli_query("SET character_set_results=utf8");
        //mysqli_query("SET character_set_client=utf8");
        //mysqli_query("SET character_set_connection=utf8"); 
        
        
        $query = "INSERT INTO tb_login (login_username,login_password,login_email) VALUES ('$login_username','$hash_login_password','$login_email')";
        $result = mysqli_query($dbcon,$query);
        $query2="INSERT INTO student (firstname_s,lastname_s,nickname_s,address_s,phone_s,email_s) VALUES ('$firstname','$last_name','$nickname','$address','$phone','$email')";
        $result2 = mysqli_query ($dbcon,$query2);
        if ($result&&$result2) {
            header("Location: index.php");
        } else {
            echo "เกิดข้อผิดพลาด ".  mysqli_error($dbcon);
        }
       
        mysqli_close($dbcon);


ลองคอมเม้นปิดไว้ครับ แล้วลองเช็คอีกรอบ หรือ เข้าไป ในส่วนของ collection ใน phpmyadmin วา่ เป็น utf8 ไหม






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-12-20 22:59:53 By : menphurk
 


 

No. 2



โพสกระทู้ ( 32 )
บทความ ( 0 )



สถานะออฟไลน์


เป็นนะคะ หมายถึง utf8 ในคอลัมน์ใช่ไหมคะ?
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-12-21 02:20:52 By : ny2003
 

 

No. 3



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


ตัวอย่างการใช้ mysqli::prepare เพื่อป้องกัน sql injection
Code (PHP)
<?php
// connectdb.php
$dbcon = new mysqli('localhost','root','','enggoal');
if($dbcon->connect_error){
die('Connect Error: ' . $dbcon->connect_error);
}
$dbcon->set_charset("utf-8");


Code (PHP)
<?php
require 'connectdb.php';
$ar=array($_POST['username'], $_POST['password'], $_POST['email'], $_POST['firstname']
	, $_POST['lastname', $_POST['nickname'], $_POST['address'], $_POST['phone']
);

//เข้ารหัส รหัสผ่าน
$salt = 'tikde78uj4ujuhlaoikiksakeidke';

$hash_login_password = hash_hmac('sha256', $_POST['password'], $salt);
if ($stmt = $dbcon->prepare('insert into tb_login set login_username=?, login_password=? , login_email=?')) {
	$stmt->bind_param("sss", $_POST['username'], $hash_login_password, $_POST['email']);
	$rs1=$stmt->execute();
	$stmt->close();
}       
if (!$rs1) die("เกิดข้อผิดพลาด <br>" . $dbcon->error);

$ins='INSERT INTO student set firstname_s=?, lastname_s=?, nickname_s=?, address_s=?, phone_s=?, email_s=?';
if ($stmt = $dbcon->prepare($ins)) {
	$stmt->bind_param("ssssss", 
		$_POST['firstname'],$_POST['last_name'],$_POST['nickname']
		,$_POST['address'],$_POST['phone'],$_POST['email']
	);
	$rs2=$stmt->execute();
	$stmt->close();
}       
if ($rs2) {
		header("Location: index.php");
} else {
		die("เกิดข้อผิดพลาด<br>" . $dbcon->error);
}


ส่วนที่เป็นปัญหาของเจ้าของกระทู้ น่าจะมาจากบันทัดที่ 7 ใน connectdb.php
ตัวคิวรี่ ไม่มี link

หรือจาก html ลองเช็คส่วนหัวของ html ดูว่ามีกำหนดภาษา คล้ายแบบนี้ไหม
Code (PHP)
<!doctype html>
<html>
<head>
<title>test ภาษาไทย</title>
<meta charset="utf-8">
</head>
<body>
   <p>สวัสดีครับ รักทุกคนนะครับ</p>
</body>
</html>



ประวัติการแก้ไข
2017-12-21 08:24:59
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-12-21 08:20:41 By : Chaidhanan
 


 

No. 4



โพสกระทู้ ( 32 )
บทความ ( 0 )



สถานะออฟไลน์


ลองทำแล้ว ตอนนี้กลายเป็นว่าในตารางนักเรียนที่อยากให้ข้อมูล insert เข้าไปก็ไม่ insert ให้ แต่ในตาราง user ก็ใช้ได้ ตอนนี้เปลี่ยน collationตารางเป็นแบบ utf8_unicode_ci ในคอลัมน์ก็เปลี่ยนหมดแล้ว ใช้โค้ดเดิมควบกันไปก็ insert ในตารางนักเรียนได้ แต่ภาษาก็ยึกยือเหมือนเดิมเลยค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-12-21 18:36:54 By : ny2003
 


 

No. 5



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


แก้ไขยังไงเอาโค๊ดมาดูหน่อยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-12-21 18:52:27 By : Chaidhanan
 


 

No. 6



โพสกระทู้ ( 32 )
บทความ ( 0 )



สถานะออฟไลน์


register.php

Code (PHP)
<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
<?php
require 'connectdb.php';
$ar=array($_POST['username'], $_POST['password'], $_POST['email'], $_POST['firstname']
, $_POST['lastname'], $_POST['nickname'], $_POST['address'], $_POST['phone']
);

//เข้ารหัส รหัสผ่าน
$salt = 'tikde78uj4ujuhlaoikiksakeidke';
$hash_login_password = hash_hmac('sha256', $_POST['password'], $salt);
if ($stmt = $dbcon->prepare('insert into tb_login set login_username=?, login_password=? , login_email=?')) {
$stmt->bind_param("sss", $_POST['username'], $hash_login_password, $_POST['email']);
$rs1=$stmt->execute();
$stmt->close();
}      
if (!$rs1) die("เกิดข้อผิดพลาด <br>" . $dbcon->error);
$ins='INSERT INTO student set firstname_s=?, lastname_s=?, nickname_s=?, address_s=?, phone_s=?, email_s=?';
if ($stmt = $dbcon->prepare($ins)) {
$stmt->bind_param("ssssss",
$_POST['firstname'],$_POST['last_name'],$_POST['nickname']
,$_POST['address'],$_POST['phone'],$_POST['email']
);
$rs2=$stmt->execute();
$stmt->close();
}      
if ($rs2) {
header("Location: index.php");
} else {
die("เกิดข้อผิดพลาด<br>" . $dbcon->error);
}
        ?>
    </body>
</html>



connectdb.php
Code (PHP)
<?php
$dbcon = new mysqli('localhost','root','','enggoal');
if($dbcon->connect_error){
die('Connect Error: ' . $dbcon->connect_error);
}

$dbcon->set_charset("utf-8");

?>


หรือตรงdocument ต้องใส่
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
แบบนี้คะ?

พอใส่ข้อมูลแล้วมันก็ขึ้นเกิดข้อผิดพลาดให้อ่ะค่ะ แต่ในตาราง tb_login มันขึ้นให้นะคะ แต่ตาราง student มันไม่ขึ้นข้อมูลให้เลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-12-21 19:17:37 By : ny2003
 


 

No. 7



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


register.php ไม่ต้องใส่ <!doctype> ครับ เป็น ส่วนของ server ที่รับ request

ที่ต้องตรวจสอบคือ ไฟล์ ที่เอาข้อมูลเข้า และ ส่ง request มายัง register.php ครับ

ทดสอบข้อมูลใน register.php ว่ามีอะไรส่งมาบ้าง
Code (PHP)
<?php
require 'connectdb.php';
/* อันนี้ลืม ลบ ไม่ได้ใช้
$ar=array($_POST['username'], $_POST['password'], $_POST['email'], $_POST['firstname']
, $_POST['lastname'], $_POST['nickname'], $_POST['address'], $_POST['phone']
);
*/
// เพิ่มบันทัดนี้เพื่อตรวจสอบข้อมูลหน่อยครับ
var_dump($_POST); exit;

//เข้ารหัส รหัสผ่าน
$salt = 'tikde78uj4ujuhlaoikiksakeidke';
$hash_login_password = hash_hmac('sha256', $_POST['password'], $salt);
if ($stmt = $dbcon->prepare('insert into tb_login set login_username=?, login_password=? , login_email=?')) {
$stmt->bind_param("sss", $_POST['username'], $hash_login_password, $_POST['email']);
$rs1=$stmt->execute();
$stmt->close();
}      
if (!$rs1) die("เกิดข้อผิดพลาด <br>" . $dbcon->error);
$ins='INSERT INTO student set firstname_s=?, lastname_s=?, nickname_s=?, address_s=?, phone_s=?, email_s=?';
if ($stmt = $dbcon->prepare($ins)) {
$stmt->bind_param("ssssss",
$_POST['firstname'],$_POST['last_name'],$_POST['nickname']
,$_POST['address'],$_POST['phone'],$_POST['email']
);
$rs2=$stmt->execute();
$stmt->close();
}      
if ($rs2) {
header("Location: index.php");
} else {
die("เกิดข้อผิดพลาด<br>" . $dbcon->error);
}


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-12-21 19:49:08 By : Chaidhanan
 


 

No. 8



โพสกระทู้ ( 32 )
บทความ ( 0 )



สถานะออฟไลน์


ขึ้นแบบนี้ค่ะ

array(9) { ["firstname"]=> string(12) "ทิตา" ["lastname"]=> string(21) "สุขเสรี" ["nickname"]=> string(6) "ทิ" ["address"]=> string(22) "289 สา่วสา" ["phone"]=> string(11) "09878374629" ["username"]=> string(2) "ti" ["password"]=> string(2) "ti" ["email"]=> string(12) "[email protected]" ["submit"]=> string(15) "สมัคร" }

รับค่ามาจาก frm_register.php ที่มีแค่กล่องที่ใช้ input เฉยๆอ่ะค่ะ ส่วนวิธีการข้างในก็เอามาทำใน register.php
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-12-21 20:00:32 By : ny2003
 


 

No. 9



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


$_POST['last_name'] สกดผิด

ปล. อย่าลืมเอาบันทัด 9 var_dump ออกด้วยนะครับ 5555


ประวัติการแก้ไข
2017-12-21 21:08:46
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-12-21 21:04:26 By : Chaidhanan
 


 

No. 10



โพสกระทู้ ( 32 )
บทความ ( 0 )



สถานะออฟไลน์


พอกดสมัครแล้วขึ้นว่าเกิดข้อผิดพลาดอ่ะค่ะ


ประวัติการแก้ไข
2017-12-22 11:50:00
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-12-22 11:49:37 By : ny2003
 


 

No. 11



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


และ เออเร่อร์อื่นๆ ล่ะครับ มันต้องขึ้น อย่างอื่นมาด้วย

อันนี้เอาไปทดลองทำ ก็ไม่เห็นจะมี error อะไรน่ะครับ
Code (PHP)
<?php
//require 'connectdb.php';
$dbcon = new mysqli('localhost','test','test','test');
if($dbcon->connect_error){
	die('Connect Error: ' . $dbcon->connect_error);
}
$dbcon->set_charset("utf-8");
$ar=$_POST;

//เข้ารหัส รหัสผ่าน
$salt = 'tikde78uj4ujuhlaoikiksakeidke';
$hash_login_password = hash_hmac('sha256', $ar['password'], $salt);
///////////
$stmt = $dbcon->prepare('insert into tb_login set login_username=?, login_password=? , login_email=?');
$stmt->bind_param("sss", $ar['username'], $hash_login_password, $ar['email']);
///////////
if(!$stmt->execute()) die("เกิดข้อผิดพลาด 1 <br>" . print_r($stmt->error_list,true));
$stmt->close();

$ins='INSERT INTO student set firstname_s=?, lastname_s=?, nickname_s=?, address_s=?, phone_s=?, email_s=?';
$stmt = $dbcon->prepare($ins);
$stmt->bind_param("ssssss", $ar['firstname'],$ar['lastname'],$ar['nickname'],$ar['address'],$ar['phone'],$ar['email']);
//////////
if( !$stmt->execute()) die("เกิดข้อผิดพลาด 2 <br>" . print_r($stmt->error_list,true));
$stmt->close();
      
echo 'complete';
//header("Location: index.php");


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-12-22 15:15:21 By : Chaidhanan
 


 

No. 12



โพสกระทู้ ( 32 )
บทความ ( 0 )



สถานะออฟไลน์


ได้แล้วค่ะๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-12-22 18:27:20 By : ny2003
 


 

No. 13



โพสกระทู้ ( 4,169 )
บทความ ( 7 )

Hall of Fame 2012

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : Chaidhanan เมื่อวันที่ 2017-12-21 08:20:41
รายละเอียดของการตอบ ::
Security เยี่ยมมากครับ LIKE

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-12-26 10:04:08 By : dudesaranyu
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : insert ค่าเข้ามาในดาต้าเบตแล้วไม่เป็นภาษาไทยค่ะ สอบถามรายละเอียดเล็กๆน้อยๆ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่