ติดต่อลงโฆษณา [email protected]

ผู้เขียน หัวข้อ: ภาษาไทย กับ Data Type แบบ VARCHAR()  (อ่าน 3684 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ specht

  • New Member
  • *
  • กระทู้: 2
    • ดูรายละเอียด
ภาษาไทย กับ Data Type แบบ VARCHAR()
« เมื่อ: 16/02/07, 05:37:07 »
ปัญหาคือ ใช้ฟอรั่มของ SMF 1.1.1 แล้วมีปัญหาการตั้งชื่อกระทู้ภาษาไทย เท่าที่ลองตรวจสอบตาม error มันไปจบลง MySQL ตารางที่เก็บชื่อกระทู้ไว้สำหรับการค้นหา ซึ่ง Data Type ของ Field นี้ตั้งไว้เป็น VARCHAR(20) จะแก้ปัญหาอย่างไรดี?


รายละเอียดเบื้องต้นที่เกี่ยวข้อง
Forum : SMF 1.1.1
MySQL : 5.0.27 (Strict Mode)
Encoding : utf8_unicode_ci ทั้งตัวภาษาและการเรียงลำดับ
ตารางใน MySQL ของ SMF ที่มีปัญหา : smf_log_search_subjects
Field ที่มีปัญหา : word (ไว้สำหรับตัดคำจากชื่อกระทู้และใช้เพื่อการค้นหา)
Data Type : VARCHAR(20)
ความรู้ด้าน php และ mysql : ไม่มี ปกติเคยลง CMS และ Forum ปรับแต่งทั่วไป ไม่เคยแก้ php หรือ mysql เลย จึงมาขอความช่วยเหลือเพราะต้อง set เจ้า SMF ให้ได้


เท่าที่ผมลองไปอ่านจากเว็บของ mysql อธิบายเรื่อง Data Type แบบ CHAR() และ VARCHAR() คือเป็นเรื่องของการนับตัววรรค ดังนั้นผมเลยคิดว่าพอมันมาเจอภาษาไทยเลยมีปัญหากับการวรรคคำ และด้วยค่าที่มันกำหนดไว้เป็น (20) ทำให้อักขระสูงสุดที่จะตัดเข้าเก็บจะมีเพียง 20 ตัว เมื่อเงื่อนไขบางอย่างไม่ตรงตามนี้มันเลยเกิด error ขึ้น โดย error ที่ฟ้องจากตัวของ SMF แจ้งมาว่า

โค้ด: [เลือก]
Database Error
Data too long for column 'word' at row 1
File: D:\xxxx\xxxx\httpdocs\forums\Sources\Subs.php
Line: 457

เมื่อตามไปดูบรรทัดนั้น (คัดมาให้ตั้งแต่บรรทัดที่ 442 - 459 โดยบรรทัดตาม error เป็นบรรทัดที่ 457 คือ VALUES (" . implode('), )

โค้ด: [เลือก]
// Insert the new subject.
if ($parameter2 !== null)
{
$parameter1 = (int) $parameter1;
$parameter2 = text2words($parameter2);

$inserts = array();
foreach ($parameter2 as $word)
$inserts[] = "'$word', $parameter1";

if (!empty($inserts))
db_query("
INSERT INTO {$db_prefix}log_search_subjects
(word, ID_TOPIC)
VALUES (" . implode('),
(', array_unique($inserts)) . ")", __FILE__, __LINE__);
}
break;

มันก็คือตาราง smf_log_search_subjects ใน Field ของ word

ทั้งหมดนี้ผมสมมติฐานเอาตามความรู้ที่แทบจะไม่มีเลยในการแก้ปัญหาของ DB error หากว่ามีวิธีแก้ แหล่งข้อมูล คำแนะนำหรือที่นำมาลงทั้งหมดนี้ผิดประเด็นก็ขอคำชี้แนะด้วยครับ

ขอขอบคุณล่วงหน้า

ออฟไลน์ vynestra

  • Hero Member
  • *****
  • กระทู้: 120,248
    • ดูรายละเอียด


ออนไลน์ whench

  • Hero Member
  • *****
  • กระทู้: 19,162
    • ดูรายละเอียด
Re: ภาษาไทย กับ Data Type แบบ VARCHAR()
« ตอบ #3 เมื่อ: 26/06/22, 13:55:56 »
http://audiobookkeeper.ruhttp://cottagenet.ruhttp://eyesvision.ruhttp://eyesvisions.comhttp://factoringfee.ruhttp://filmzones.ruhttp://gadwall.ruhttp://gaffertape.ruhttp://gageboard.ruhttp://gagrule.ruhttp://gallduct.ruhttp://galvanometric.ruhttp://gangforeman.ruhttp://gangwayplatform.ruhttp://garbagechute.ruhttp://gardeningleave.ruhttp://gascautery.ruhttp://gashbucket.ruhttp://gasreturn.ruhttp://gatedsweep.ruhttp://gaugemodel.ruhttp://gaussianfilter.ruhttp://gearpitchdiameter.ru
http://geartreating.ruhttp://generalizedanalysis.ruhttp://generalprovisions.ruhttp://geophysicalprobe.ruhttp://geriatricnurse.ruhttp://getintoaflap.ruhttp://getthebounce.ruhttp://habeascorpus.ruhttp://habituate.ruhttp://hackedbolt.ruhttp://hackworker.ruhttp://hadronicannihilation.ruhttp://haemagglutinin.ruhttp://hailsquall.ruhttp://hairysphere.ruhttp://halforderfringe.ruhttp://halfsiblings.ruhttp://hallofresidence.ruhttp://haltstate.ruhttp://handcoding.ruhttp://handportedhead.ruhttp://handradar.ruhttp://handsfreetelephone.ru
http://hangonpart.ruhttp://haphazardwinding.ruhttp://hardalloyteeth.ruhttp://hardasiron.ruhttp://hardenedconcrete.ruhttp://harmonicinteraction.ruhttp://hartlaubgoose.ruhttp://hatchholddown.ruhttp://haveafinetime.ruhttp://hazardousatmosphere.ruhttp://headregulator.ruhttp://heartofgold.ruhttp://heatageingresistance.ruhttp://heatinggas.ruhttp://heavydutymetalcutting.ruhttp://jacketedwall.ruhttp://japanesecedar.ruhttp://jibtypecrane.ruhttp://jobabandonment.ruhttp://jobstress.ruhttp://jogformation.ruhttp://jointcapsule.ruhttp://jointsealingmaterial.ru
http://journallubricator.ruhttp://juicecatcher.ruhttp://junctionofchannels.ruhttp://justiciablehomicide.ruhttp://juxtapositiontwin.ruhttp://kaposidisease.ruhttp://keepagoodoffing.ruhttp://keepsmthinhand.ruhttp://kentishglory.ruhttp://kerbweight.ruhttp://kerrrotation.ruhttp://keymanassurance.ruhttp://keyserum.ruhttp://kickplate.ruhttp://killthefattedcalf.ruhttp://kilowattsecond.ruhttp://kingweakfish.ruhttp://kinozones.ruhttp://kleinbottle.ruhttp://kneejoint.ruhttp://knifesethouse.ruhttp://knockonatom.ruhttp://knowledgestate.ru
http://kondoferromagnet.ruhttp://labeledgraph.ruhttp://laborracket.ruhttp://labourearnings.ruhttp://labourleasing.ruhttp://laburnumtree.ruhttp://lacingcourse.ruhttp://lacrimalpoint.ruhttp://lactogenicfactor.ruhttp://lacunarycoefficient.ruhttp://ladletreatediron.ruhttp://laggingload.ruhttp://laissezaller.ruhttp://lambdatransition.ruhttp://laminatedmaterial.ruhttp://lammasshoot.ruhttp://lamphouse.ruhttp://lancecorporal.ruhttp://lancingdie.ruhttp://landingdoor.ruhttp://landmarksensor.ruhttp://landreform.ruhttp://landuseratio.ru
http://languagelaboratory.ruhttp://largeheart.ruhttp://lasercalibration.ruhttp://laserlens.ruhttp://laserpulse.ruhttp://laterevent.ruhttp://latrinesergeant.ruhttp://layabout.ruhttp://leadcoating.ruhttp://leadingfirm.ruhttp://learningcurve.ruhttp://leaveword.ruhttp://machinesensible.ruhttp://magneticequator.ruhttp://magnetotelluricfield.ruhttp://mailinghouse.ruhttp://majorconcern.ruhttp://mammasdarling.ruhttp://managerialstaff.ruhttp://manipulatinghand.ruhttp://manualchoke.ruhttp://medinfobooks.ruhttp://mp3lists.ru
http://nameresolution.ruhttp://naphtheneseries.ruhttp://narrowmouthed.ruhttp://nationalcensus.ruhttp://naturalfunctor.ruhttp://navelseed.ruhttp://neatplaster.ruhttp://necroticcaries.ruhttp://negativefibration.ruhttp://neighbouringrights.ruhttp://objectmodule.ruhttp://observationballoon.ruhttp://obstructivepatent.ruhttp://oceanmining.ruhttp://octupolephonon.ruhttp://offlinesystem.ruhttp://offsetholder.ruhttp://olibanumresinoid.ruhttp://onesticket.ruhttp://packedspheres.ruhttp://pagingterminal.ruhttp://palatinebones.ruhttp://palmberry.ru
http://papercoating.ruhttp://paraconvexgroup.ruhttp://parasolmonoplane.ruhttp://parkingbrake.ruhttp://partfamily.ruhttp://partialmajorant.ruhttp://quadrupleworm.ruhttp://qualitybooster.ruhttp://quasimoney.ruhttp://quenchedspark.ruhttp://quodrecuperet.ruhttp://rabbetledge.ruhttp://radialchaser.ruhttp://radiationestimator.ruhttp://railwaybridge.ruhttp://randomcoloration.ruhttp://rapidgrowth.ruhttp://rattlesnakemaster.ruhttp://reachthroughregion.ruhttp://readingmagnifier.ruhttp://rearchain.ruhttp://recessioncone.ruhttp://recordedassignment.ru
http://rectifiersubstation.ruhttp://redemptionvalue.ruhttp://reducingflange.ruhttp://referenceantigen.ruhttp://regeneratedprotein.ruhttp://reinvestmentplan.ruhttp://safedrilling.ruhttp://sagprofile.ruhttp://salestypelease.ruhttp://samplinginterval.ruhttp://satellitehydrology.ruhttp://scarcecommodity.ruhttp://scrapermat.ruhttp://screwingunit.ruhttp://seawaterpump.ruhttp://secondaryblock.ruhttp://secularclergy.ruhttp://seismicefficiency.ruhttp://selectivediffuser.ruhttp://semiasphalticflux.ruhttp://semifinishmachining.ruhttp://spicetrade.ruhttp://spysale.ru
http://stungun.ruhttp://tacticaldiameter.ruhttp://tailstockcenter.ruhttp://tamecurve.ruhttp://tapecorrection.ruhttp://tappingchuck.ruhttp://taskreasoning.ruhttp://technicalgrade.ruhttp://telangiectaticlipoma.ruhttp://telescopicdamper.ruhttp://temperateclimate.ruhttp://temperedmeasure.ruhttp://tenementbuilding.rutuchkashttp://ultramaficrock.ruhttp://ultraviolettesting.ru