คำถามติดแท็ก mysql

MySQL เป็นโอเพ่นซอร์สระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ที่ใช้ภาษาคิวรีเชิงโครงสร้าง (SQL) ห้ามใช้แท็กนี้สำหรับฐานข้อมูลอื่น ๆ เช่น SQL Server, SQLite เป็นต้นฐานข้อมูลเหล่านี้เป็นฐานข้อมูลที่แตกต่างกันซึ่งทั้งหมดใช้ภาษาของ SQL เพื่อจัดการข้อมูล

28
ฉันจะป้องกันการฉีด SQL ใน PHP ได้อย่างไร?
คำตอบของคำถามนี้เป็นความพยายามของชุมชน แก้ไขคำตอบที่มีอยู่เพื่อปรับปรุงโพสต์นี้ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ วิธีนี้จะช่วยให้คุณเข้าถึงสแต็คโอเวอร์โฟลว์ที่ซ้อนทับกันบน: การจัดการกับ SQL หรือไม่ SQL-инъекцийв PHP? หากการป้อนข้อมูลของผู้ใช้ถูกแทรกโดยไม่มีการดัดแปลงลงในแบบสอบถาม SQL แอปพลิเคชันจะเสี่ยงต่อการฉีด SQLเช่นในตัวอย่างต่อไปนี้: $unsafe_variable = $_POST['user_input']; mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variable')"); นั่นเป็นเพราะผู้ใช้สามารถป้อนสิ่งที่ชอบvalue'); DROP TABLE table;--และแบบสอบถามจะกลายเป็น: INSERT INTO `table` (`column`) VALUES('value'); DROP TABLE table;--') สิ่งที่สามารถทำได้เพื่อป้องกันไม่ให้สิ่งนี้เกิดขึ้น?

30
ฉันควรใช้ชนิดข้อมูลวันที่และเวลาหรือข้อมูลประทับเวลาใน MySQL หรือไม่
คุณจะแนะนำให้ใช้วันที่และเวลาหรือการประทับเวลาฟิลด์และทำไม (ใช้ MySQL)? ฉันทำงานกับ PHP ที่ฝั่งเซิร์ฟเวอร์

15
ทำไมฉันไม่ควรใช้ฟังก์ชั่น mysql_ * ใน PHP?
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ อะไรคือเหตุผลทางเทคนิคสำหรับสาเหตุที่ไม่ควรใช้mysql_*ฟังก์ชั่น? (เช่นmysql_query(), mysql_connect()หรือmysql_real_escape_string() )? เหตุใดฉันจึงควรใช้อย่างอื่นแม้ว่าพวกเขาจะทำงานบนไซต์ของฉัน หากพวกเขาไม่ทำงานบนเว็บไซต์ของฉันทำไมฉันถึงได้รับข้อผิดพลาดเช่น คำเตือน: mysql_connect (): ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
2502 php  mysql 

30
ฉันจะนำเข้าไฟล์ SQL โดยใช้บรรทัดคำสั่งใน MySQL ได้อย่างไร
ฉันมีไฟล์ที่มีการส่งออกจาก.sql phpMyAdminฉันต้องการนำเข้าลงในเซิร์ฟเวอร์อื่นโดยใช้บรรทัดคำสั่ง ฉันมีการติดตั้งWindows Server 2008 R2 ฉันวาง.sqlไฟล์ไว้บนไดรฟ์ Cและฉันลองคำสั่งนี้ database_name < file.sql มันไม่ทำงาน. ฉันได้รับข้อผิดพลาดทางไวยากรณ์ ฉันจะนำเข้าไฟล์นี้โดยไม่มีปัญหาได้อย่างไร ฉันต้องสร้างฐานข้อมูลก่อนหรือไม่?
2035 mysql  sql  command-line  import 

15
จะรับรายการบัญชีผู้ใช้โดยใช้บรรทัดคำสั่งใน MySQL ได้อย่างไร
ฉันใช้ยูทิลิตีบรรทัดคำสั่งของ MySQL และสามารถนำทางผ่านฐานข้อมูล ตอนนี้ฉันต้องการดูรายการบัญชีผู้ใช้ ฉันจะทำสิ่งนี้ได้อย่างไร ฉันใช้ MySQL 5.4.1รุ่น

11
การติดตั้งแพคเกจเฉพาะรุ่นด้วย pip
ฉันกำลังพยายามติดตั้งอะแดปเตอร์ MySQL_python เวอร์ชัน 1.2.2 โดยใช้ virtualenv ใหม่ที่สร้างด้วย--no-site-packagesตัวเลือก รุ่นปัจจุบันที่แสดงใน PyPi เป็น1.2.3 มีวิธีติดตั้งเวอร์ชั่นเก่ากว่านี้ไหม? ฉันพบบทความที่ระบุว่าควรทำสิ่งนี้: pip install MySQL_python==1.2.2 อย่างไรก็ตามเมื่อติดตั้งแล้วจะยังคงปรากฏMySQL_python-1.2.3-py2.6.egg-infoในแพ็คเกจไซต์ นี่เป็นปัญหาเฉพาะของแพคเกจนี้หรือฉันกำลังทำอะไรผิดหรือเปล่า?
1313 python  mysql  pip  pypi  mysql-python 


11
ฉันสามารถต่อแถว MySQL หลายแถวไว้ในฟิลด์เดียวได้ไหม
ใช้MySQLฉันสามารถทำสิ่งที่ชอบ: SELECT hobbies FROM peoples_hobbies WHERE person_id = 5; เอาท์พุทของฉัน: shopping fishing coding แต่ฉันต้องการ 1 แถวแทน 1 คอลัมน์: ผลลัพธ์ที่คาดหวัง: shopping, fishing, coding เหตุผลก็คือฉันเลือกค่าหลายค่าจากหลายตารางและหลังจากการรวมทั้งหมดฉันมีแถวมากกว่าที่ฉันต้องการ ฉันมองหาฟังก์ชั่นในMySQL Docและมันดูไม่เหมือนCONCATหรือCONCAT_WSฟังก์ชั่นที่ยอมรับชุดผลลัพธ์ ดังนั้นใครที่นี่รู้วิธีการทำเช่นนี้?
1214 mysql  sql  concat  group-concat 

13
ชนิดข้อมูล MySQL ที่จะใช้สำหรับการจัดเก็บค่าบูลีน
เนื่องจาก MySQL ดูเหมือนจะไม่มีประเภทข้อมูล 'บูลีน' คุณใช้ 'data' ในการเก็บข้อมูลจริง / เท็จใน MySQL หรือไม่ โดยเฉพาะอย่างยิ่งในบริบทของการเขียนและการอ่านจาก / ถึงสคริปต์ PHP เมื่อเวลาผ่านไปฉันได้ใช้และเห็นหลายวิธี: tinyint, varchar field ที่มีค่า 0/1, เขตข้อมูล varchar มีสตริง '0' / '1' หรือ 'true' / 'false' และในที่สุด Enum ฟิลด์ที่มีสองตัวเลือก 'จริง' / 'เท็จ' ไม่มีสิ่งใดที่เหมาะสม ฉันมักจะชอบตัวแปรจิ๋ว 0/1 เนื่องจากการแปลงชนิดอัตโนมัติใน PHP ให้ค่าบูลีนแทน ดังนั้นคุณใช้ชนิดข้อมูลใด มีประเภทที่ออกแบบมาสำหรับค่าบูลีนที่ฉันมองข้ามไปหรือไม่? คุณเห็นข้อดี / ข้อเสียใด ๆ โดยการใช้งานประเภทใดประเภทหนึ่งหรือไม่?

16
UTF-8 ตลอดทาง
ฉันกำลังตั้งค่าเซิร์ฟเวอร์ใหม่และต้องการรองรับ UTF-8 อย่างเต็มที่ในเว็บแอปพลิเคชันของฉัน ฉันเคยลองสิ่งนี้ในอดีตบนเซิร์ฟเวอร์ที่มีอยู่และดูเหมือนจะจบลงเสมอเมื่อต้องย้อนกลับไปใช้ ISO-8859-1 ฉันต้องตั้งค่าการเข้ารหัส / ชุดอักขระที่ไหน ฉันรู้ว่าฉันต้องกำหนดค่า Apache, MySQL และ PHP ให้ทำเช่นนี้ - มีรายการตรวจสอบมาตรฐานบางอย่างที่ฉันสามารถติดตามได้หรืออาจแก้ไขปัญหาที่เกิดความไม่ตรงกันหรือไม่ นี่เป็นเซิร์ฟเวอร์ Linux ตัวใหม่ที่รัน MySQL 5, PHP, 5 และ Apache 2
1191 php  mysql  linux  apache  utf-8 

30
จะแสดงผลลัพธ์คิวรี MySQL ในรูปแบบ CSV ได้อย่างไร
มีวิธีที่ง่ายในการเรียกใช้แบบสอบถาม MySQL จากบรรทัดคำสั่ง Linux และส่งออกผลลัพธ์ในรูปแบบCSVหรือไม่ นี่คือสิ่งที่ฉันทำตอนนี้: mysql -u uid -ppwd -D dbname << EOQ | sed -e 's/ /,/g' | tee list.csv select id, concat("\"",name,"\"") as name from students EOQ มันจะเกิดความยุ่งเหยิงเมื่อมีคอลัมน์จำนวนมากที่ต้องล้อมรอบด้วยเครื่องหมายคำพูดหรือหากมีเครื่องหมายคำพูดในผลลัพธ์ที่ต้องหลีกหนี
1183 mysql  csv  quotes 



30
mysql_fetch_array () / mysql_fetch_assoc () / mysql_fetch_row () / mysql_num_rows ฯลฯ …คาดว่าพารามิเตอร์ 1 จะเป็นทรัพยากร
เป็นส่วนหนึ่งของStack Overflow ที่ระบุไว้ : mysql_fetch_array () คาดว่าพารามิเตอร์ 1 จะเป็นทรัพยากร (หรือ mysqli_result), ได้รับ boolean ฉันกำลังพยายามเลือกข้อมูลจากตาราง MySQL แต่ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: mysql_fetch_array () คาดว่าพารามิเตอร์ 1 จะเป็นทรัพยากรกำหนดบูลีน นี่คือรหัสของฉัน: $username = $_POST['username']; $password = $_POST['password']; $result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username'); while($row = mysql_fetch_array($result)) { echo $row['FirstName']; }
960 php  mysql 

30
ฉันจะเปลี่ยนชื่อฐานข้อมูล MySQL อย่างรวดเร็ว (เปลี่ยนชื่อสคีมา) ได้อย่างไร
คู่มือ MySQL ที่MySQLครอบคลุมสิ่งนี้ ฉันมักจะถ่ายโอนฐานข้อมูลและนำเข้าใหม่ด้วยชื่อใหม่ นี่ไม่ใช่ตัวเลือกสำหรับฐานข้อมูลขนาดใหญ่มาก เห็นได้ชัดว่าไม่สิ่งที่ไม่ดีที่มีอยู่เฉพาะในกำมือของรุ่นและเป็นความคิดที่ไม่ดีโดยรวมRENAME {DATABASE | SCHEMA} db_name TO new_db_name; ความต้องการนี้จะทำงานร่วมกับInnoDBซึ่งร้านค้าสิ่งที่แตกต่างกันมากกว่าMyISAM
959 mysql  database  innodb  rename 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.