เปลี่ยน sql มาเป็น sql server 2017 แต่ connect database ไม่ได้
งั้นคุณต้องเข้าไปดูpath php.ini ค้นหาคำว่า extension_dir ตรวจสอบ / กับ \ ด้วยครับ
ประวัติการแก้ไข 2020-01-28 12:25:10
Date :
2020-01-28 12:24:04
By :
Genesis™
php version เปลี่ยนด้วยหรือเปล่า ใช้ version ไหนอยู่
จำไม่ได้แล้วว่า mssql มัน ต้องการ php version ไหนบ้าง แล้ว sqlsrv มันใช้กับ version ไหนบ้าง ลองเช็คส่วนนี้ด้วยครับ
Date :
2020-01-28 14:00:27
By :
Chaidhanan
มันจะเป็นที่ mssql ตัวใหม่ มั้ยคะ เพราะกลับไป connect ตัวเก่า connect ได้
Date :
2020-01-28 14:44:56
By :
AnnYZaa
ลองใช้ เครื่องมือ ของ sql server เช่น ssms เรียกจากต่าง เครื่องดูว่า connect ได้ไหม
เพื่อตรวจสอบการ share port share ip ว่าถูกต้องไหม
ถ้าได้ถูกต้อง ก็แก้ปัญหาเฉพาะหน้าไปก่อน หา extension php_sqlsrv สำหรับ php 5.2.6 มาลง
และ ตัว extension มันมี 2 แบบ แบบ ts และแบบ nts หามาทั้งสองตัว ลองลงที่ละตัว ๆ ไหน ใช้ได้ก็ใช้ตัวนั้น
จริงๆ อยากแนะนำให้ลง php 7.3 ไปเลย แต่เห็นโค๊ดแล้ว คงแก้อีกยาว
อีกนิด ใช้ sql server แล้ว ก็ควรใช้ IIS ของ window ดีกว่า วิธีการลงก็ไม่ยากเลย
ส่วน การใช้ short_tag ก็ใช้โค๊ดเดิมไปก่อนได้ โดยแก้ไข PHP.INI กำหนด SHORT_TAG เป็น 1 ไปก่อน
แล้วค่อยแก้โค๊ดให้มันได้ มาตรฐาน ถ้าโค๊ดเราไม่ได้ใช้ xml tool ก็คงไม่มีปัญหาอะไรมาก
Date :
2020-01-28 16:40:54
By :
Chaidhanan
ทำได้แล้วค่ะ แต่ใช้วิธี connect แบบนี้ค่ะ
https://www.thaicreate.com/php/forum/065831.html
Code (PHP)
<html>
<head>
<title>connect</title>
</head>
<body>
$servername = "192.168.0.22\sqlexpress"; //ชื่อ server
$databasename = "db_test"; //ชื่อ database บน MsSQL
$user = "test"; //?username ที่จะ connect database
$pass = "1234"; //password ที่จะ connect ไปที่ database
$connection_string ="DRIVER={SQL Server};SERVER=$servername;DATABASE=$databasename;AutoTranslate=no"; //connect แบบ ODBC
$cid = odbc_connect($connection_string,$user, $pass) ;
if($cid)
{
echo "เชื่อมต่อได้";
}
else
{
echo "เชื่อมต่อไม่ได้";
}
</body>
</html
Date :
2020-02-07 12:14:44
By :
AnnYZaa
แจ่มเลย เปลี่ยนไปใช้ ODBC ไม่ต้องกังวลเรือง php version
ถ้ายังไงลองศึกษาตรงนี้ดูหน่อยครับ มันจะช่วยเรื่อง security
เรื่อง user password ที่ต้อง config ลงใน code php ประโยชน์ก็ใช้ในกรณี่ที่มี staff ใช้งานหลายคน
ซึ่งบางคนเราไม่ต้องการให้ รู้ user password หรือ connection string
http://w3schools.sinsixx.com/php/php_db_odbc.asp.htm
Date :
2020-02-07 12:44:32
By :
Chaidhanan
เรื่อง web server
ผมเชียร์ Apache เพราะ หาคนช่วยเหลือได้ง่ายกว่า, ปรับแต่งได้เยอะและง่ายกว่า, สามารถเขียนโปรแกรมเสริมมารันคำสั่งทาง command line ได้.
ตัวอย่างที่ผมทำแล้วแชร์เป็นบทความ
* รัน php ทีละหลายๆเวอร์ชั่นพร้อมๆกันบน Apache ที่ติดตั้งอันเดียว โดยใช้ port 80, 443 แค่นั้น แต่ต่างโดเมนกัน. https://rundiz.com/?p=633
* สลับรุ่น php รันทีละเวอร์ชั่น เช่น http://localhost จาก php 5.6 ไป 7.2, 7.3, 7.4, ฯลฯ โดยใช้คำสั่งจากโปรแกรมเสริมที่ว่า สั่งสลับรุ่นปุ๊บรีสตาร์ท Apache ให้ปั๊บ https://rundiz.com/?p=614
* Download Apache + PHP หลายเวอร์ชั่นที่ config มาแล้วล่วงหน้าแค่บางส่วน https://rundiz.com/?p=146
อีกเหตุผลคือ ถ้าเราจะใช้ server จริงบน Linux อยู่แล้วก็คงหนีไม่พ้น Apache, Nginx ซึ่งการกำหนดค่าต่างๆก็ต้องทำผ่าน .htaccess, .user.ini อยู่ดี ใช้ Apache ไปเลยมันได้ทำไปเลยทีเดียว ใช้ IIS มันต้องมาแปลง web.config อีกที ซึ่งมักจะลืมทำอีกนั่นแหละ (เคยมาแล้ว 555).
เรื่องความปลอดภัยการเปิดเผย login MS sql server
อันนี้ขอแชร์จากประสบการณ์ที่เคยทำร่วมกับคนอื่น คือเราจะใช้พวก git server อย่าง GitHub ก็ได้ (เปิด private) หรือติดตั้ง Gitea server เองก็ได้ แล้วเมื่อเขียนโค้ดเสร็จก็ commit เข้า Git server เช่น Gitea.
ในขั้นตอน development เครื่องของโปรแกรมเมอร์แต่ละคนจะมีพวก MySQL server อยู่แล้ว (กรณีนี้ก็เปรียบเทียบเป็น MS SQL server เอาเองก็ได้เนอะ เผื่อมีคนซื่อจัดเข้ามาตอบ) ดังนั้นค่า config db ต่างๆขณะที่ทำการเขียนโปรแกรมนั้น ก็ใช้ของตัวโปรแกรมเมอร์แต่ละคนเอาเอง โดยใช้วิธีอย่างนี้...
สมมุติว่า ไฟล์ config db ชื่อ config/db.default.php อันนี้ไม่ต้องกำหนดอะไรลงไป แล้วก็ไม่ต้องไป ignore มัน มีอะไรอัพเดทได้ตลอด.
เมื่อทำการ clone ลงแต่ละเครื่องที่ทำการ dev. ให้ copy ไฟล์ไปเป็น config/db.php แล้วปรับแต่งค่าให้ตรงกับข้อมูลบนเครื่องที่ dev ขณะนั้น โดยไฟล์นี้จะต้องทำการ ignore ไม่ให้มีการ commit เด็ดขาด.
ทีนี้เวลา commit ขึ้น Git server ข้อมูลลับก็ไม่รั่วไหลครับ สบาย...
แล้วก็จะมี server กลางอันหนึ่ง สำหรับปรับสภาพแวดล้อมให้ตรงกับของลูกค้า บน example server นี้ก็มี MySQL อีกตัวหนึ่ง ข้อมูลการเชื่อมต่อก็แตกต่างไปอีก ผู้ดูแลสูงสุดเพียงคนเดียวเท่านั้นจะเข้ามาแก้ได้ ซึ่งก็หลักการเดียวกัน คือ clone ลงมาครั้งแรกก็ปรับแต่ง config/db.php ให้เรียบร้อย แล้วที่เหลือเวลา pull request มันก็ไม่มีอะไรมาทับ เพราะเครื่องโปรแกรมเมอร์ทุกคนต้อง ignore config/db.php เอาไว้แล้ว...
เยอะหน่อยแต่หวังว่าจะมีประโยชน์บ้างสักเล็กน้อยครับ.
Date :
2020-02-07 19:28:03
By :
mr.v
Load balance : Server 05