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

Drupal ให้เลเยอร์ abstraction abstraction ที่เป็นมาตรฐานและเป็นมาตรฐานสำหรับการเข้าถึงเซิร์ฟเวอร์ฐานข้อมูล

4
วิธีการรับแกนเพื่อยกระดับการกำหนดค่า MySQL master / slave?
ฉันอ่านคำถามนี้การจำลองแบบ MySQL master / slave ไม่ทำงานและคำตอบ: การใช้ฐานข้อมูล Slave นั้นแทบจะไม่มีการใช้งานใน Drupal core หากคุณกำลังพัฒนาโมดูลของคุณเองการเรียกไปยัง db_query จำเป็นต้องระบุว่าพวกเขาต้องการใช้ฐานข้อมูลทาสโดยใช้อาร์เรย์ $ options ดู DatabaseConnection :: defaultOptions สำหรับวิธีการตั้งค่าอาร์เรย์นี้ มีวิธีโดยไม่ฆ่าลูกแมวที่แฮ็คคอร์เพื่อรับdb_query()และdb_select()สร้างคิวรีแบบ SELECT เพิ่มเติมหรือไม่ ตามค่าเริ่มต้นฟังก์ชั่นเหล่านี้จะทำการค้นหาข้อมูลหลักยกเว้นจะบอกให้ทำการสืบค้น Slave โดยเฉพาะ (ดูที่ API) คุณต้องเขียนdb_query($query, $args, array('target' => 'slave'))เพื่อสอบถามทาสและคอร์ (และโมดูลทั้งหมด) ไม่ได้ถูกเขียนเพื่อให้ได้สิ่งนี้ ค้นหาเท่านั้น(ดูส่วนทาส) และผู้รวบรวมดูเหมือนจะใช้ประโยชน์จากสิ่งนี้ แก้ไข:ต.ค. 25 ฉันเห็น pressflow 7 หมดแล้ว แต่ฉันไม่แน่ใจว่าจะช่วยได้มากตอนนี้หรือไม่ ฉันไม่พบสิ่งที่เกี่ยวข้องดังนั้นลองใช้ความช่วยเหลือเล็กน้อยเพื่อช่วยให้ได้รับคำตอบ แก้ไข:ต.ค. , 31 ฉันกังวลเกี่ยวกับความคิดเห็นของ …

2
EntityFieldQuery ภายในเข้าร่วม
ฉันต้องการเรียกใช้แบบสอบถามโดยใช้วัตถุ EntityFieldQuery ฉันต้องการค่าจากทั้งโหนดและตาราง node_access ดังนั้นฉันต้องใช้ INNER JOIN จากเอกสารที่ต้องทำฉันไม่สามารถทราบได้ว่าเป็นไปได้อย่างไร นี่คือสิ่งที่ฉันมี - $query = new EntityFieldQuery(); $result = $query->entityCondition('entity_type', 'node') ->entityCondition('bundle', 'node_access') ->propertyCondition('type', 'external_link') ->propertyCondition('status', 1) ->fieldCondition('gid', '3', '=') ->fieldCondition('realm', 'domain_id', '=') ->fieldCondition('grant_view', '1', '>=') ->range(0,1) ->execute();
21 7  database 

2
ใช้ LIKE ใน db_query ใน D7
ฉันมีแบบสอบถามเช่นนี้ใน Drupal 6: $sql = 'SELECT sid, score FROM search_index WHERE word LIKE "%%%s%%"'; $result = db_query($sql,$search_term); มันใช้งานได้ดี แต่ตอนนี้ฉันกำลังอัพเกรดเป็น Drupal 7 ฉันอ่านและนี่ควรจะใช้ได้ แต่ไม่ใช่: $sql = 'SELECT sid, score FROM search_index WHERE word LIKE "%:term"'; $result = db_query($sql,array(':term'=>$search_term)); ไม่มีใครรู้ว่าฉันทำอะไรผิดหรือเปล่า?
19 7  database 

1
เข้าร่วมและมองหาค่า NULL
ฉันใช้โมดูลการตั้งค่าสถานะเพื่อให้ผู้ใช้ทำเครื่องหมายคำถามของพวกเขาว่าถูกแก้ไขคล้ายกับการทำงานในไซต์นี้ ฉันจึงต้องการให้ผู้ใช้กรองโพสต์เพื่อแสดงเฉพาะคำถามที่ยังไม่ได้ตอบ นอกจากนี้บางโพสต์อาจไม่ใช่คำถามเลย ดังนั้นพวกเขาไม่สามารถตั้งค่าสถานะ "แก้ไข" แต่พวกเขาไม่ควรปรากฏในผลลัพธ์เมื่อกรองโดยคำถามที่ไม่ได้แก้ไขเท่านั้น ดังนั้นฉันต้องเข้าร่วมตารางโหนดกับอีกสองคน: flag_contentและfield_data_field_question(ตารางหลังนี้เป็นสิ่งที่บอกว่าโพสต์เป็นคำถามหรือไม่) นี่คือรหัสปัจจุบันที่ฉันพยายาม: $query->join('flag_content', 'f', 'f.content_id = n.nid AND f.content_type = "node" AND f.fid = 5'); $query->join('field_data_field_question', 'q', 'q.entity_id = n.nid AND q.field_question_value = 1'); $query->condition('f.fid', 'NULL', 'IS'); $query->condition('q.field_question_value', 'NULL', 'IS NOT'); อย่างไรก็ตามผลลัพธ์นี้มีข้อผิดพลาดต่อไปนี้: PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an …
19 7  database 

4
คุณสร้างตารางที่เรียงลำดับได้ด้วยเพจเจอร์ที่มีข้อมูลจากตารางที่กำหนดเองได้อย่างไร?
สำหรับ Drupal 6 คุณสามารถทำสิ่งนี้: $header = array( array('data' => t('Order id'), 'field' => 'order_id'), ... array('data' => t('Transaction time'), 'field' => 'payment_time', 'sort' => 'desc'), ); $sql = "..."; $sql .= tablesort_sql($header); $limit = 25; $result = pager_query($sql, $limit); ... ฉันได้ดูและสำหรับ Drupal 7 และทั้งสองpager_queryและtablesort_sqlตอนนี้หายไป ดูเหมือนว่าPagerDefaultคลาสนั้นสามารถใช้เพื่อสร้างคิวรีเพจเจอร์โดยใช้ DBTNG ฉันไม่สามารถหาเบาะแสใด ๆ บน API …
19 7  database 

1
สามารถทดสอบฐานข้อมูลเพื่อดูว่ามันไม่สอดคล้องกันหรือไม่?
เราทุกคนรู้ว่า Drupal ไม่ได้โดดสนับสนุนแนวคิดของปุ่มต่างประเทศในฐานข้อมูลและมีแนวโน้มที่จะไม่ 1 เรารู้ด้วยว่ามันเป็นไปได้ที่โมดูลจะไม่ทำสิ่งที่ถูกต้องหรือผู้ใช้จะทำสิ่งที่บ้าเป็นระยะ ๆ DELETE FROM node_revision WHERE vid = 123 ในความพยายามที่จะ "ทำให้ฐานข้อมูลเป็นระเบียบเรียบร้อย" เมื่อสิ่งนี้เกิดขึ้น hooks จะไม่ทำงานและมีข้อมูลที่ถูกโยงถึงในฐานข้อมูล ส่วนใหญ่ข้อมูลนี้ไม่เป็นอันตราย แต่บางครั้งก็ทำให้เกิดพฤติกรรมแปลก ๆ และสามารถนำข้อบกพร่องออกมาในรหัส มีวิธีการที่เหมาะสมในการตรวจสอบว่าคุณมีข้อมูลที่ตายและ / หรือไม่สอดคล้องในฐานข้อมูลของคุณหรือไม่? 1 Drupal 7 Schema API รองรับเอกสารเหล่านั้น แต่ไม่บังคับใช้
18 database  testing 

10
ฉันจะเปลี่ยนชื่อเครื่องของเขตข้อมูลได้อย่างไรเมื่อสร้างแล้ว
ฉันเว้นระยะขณะที่พิมพ์ชื่อฟิลด์และตอนนี้ชื่อเครื่องไม่ใช่สิ่งที่ฉันต้องการให้เป็น ฉันรู้ว่ามันเป็นเรื่องน่ารำคาญ แต่ฉันสงสัยว่าจะมีวิธีในการเปลี่ยนชื่อเครื่องของฟิลด์เมื่อสร้างขึ้นหรือไม่ ฉันคิดว่าสิ่งนี้ทำให้ฉันเข้าไปในส่วนที่สองของคำถามของฉัน ถ้าฉันสร้างเขตข้อมูลและไม่ได้ใช้งานอีกต่อไปฉันจะลบทิ้งได้อย่างไรจะต้องทำสิ่งนี้จากฐานข้อมูลหรือจะทำที่ใดที่หนึ่งใน UI ได้

5
เป็นไปได้หรือไม่ที่จะกู้คืนโหนดที่ลบไป
ในขณะที่การแก้ไขถูกเก็บไว้และเป็นเรื่องง่ายที่จะกลับไปที่การแก้ไขก่อนหน้าของโหนดฉันสงสัยว่ามันเป็นไปได้หรือไม่ที่จะกู้คืนโหนดที่ผู้ใช้ลบจริง ๆ ?
18 nodes  database 

5
ฉันจะลบการแก้ไขโหนด / ฟิลด์ทั้งหมดได้อย่างไร
ฉันมีเว็บไซต์ drupal 7 ซึ่งมันช่วยแก้ไขโหนดและฟิลด์ ฉันทำการแก้ไขในกรณีที่มีการบันทึกเวอร์ชันที่ผิดพลาดใหม่โดยไม่ได้ตั้งใจและฉันต้องการเปลี่ยนกลับ แต่ตอนนี้ฉันต้องการล้างและปรับแต่งฐานข้อมูลเพื่อให้มีพื้นที่น้อยลงในฮาร์ดดิสก์ มีวิธีใดบ้างในการลบการแก้ไขทั้งหมดยกเว้นวิธีปัจจุบันสำหรับโหนด / ฟิลด์ทั้งหมดของไซต์
17 7  database  nodes 

2
วิธีกำจัดปัญหาการพิมพ์ Deadlocks และ Lock time out
ฉันอ่านบล็อกหลายอันพยายาม google แต่ก็ไม่พบความพึงพอใจจากโซลูชันใด ๆ ฉันมีปัญหาต่อไปนี้: PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction: DELETE FROM {cache_field} WHERE (cid LIKE :db_condition_placeholder_0 ESCAPE '\\') ; Array ( [:db_condition_placeholder_0] => field\_info:% ) in cache_clear_all() (line 163 of \includes\cache.inc). PDOException: SQLSTATE[HY000]: General error: 1205 Lock wait timeout …

2
วิธีการเผยแพร่โหนดที่ไม่ได้เผยแพร่โดยทางโปรแกรม
ฉันมีโหนดที่ไม่เผยแพร่ซึ่งฉันมีโหนด ID ของพวกเขา ฉันจะเผยแพร่ทางโปรแกรมได้อย่างไร ถูกต้องหรือไม่เพื่อให้บรรลุในโมดูลที่กำหนดเองโดยใช้แบบสอบถามดังต่อไปนี้ db_query("UPDATE {node} SET status = 1 WHERE nid = %d", $nid)
16 7  database 

1
จะเปิดเผยตารางที่ไม่ใช่ Drupal ใน Views ได้อย่างไร
ฉันสงสัยว่าวิธีที่ดีที่สุดในการอนุญาตให้โมดูลViewsเข้าถึงตารางภายนอกไม่ใช่ใน Drupal คืออะไร ฉันลองโมดูลข้อมูลแต่ไม่อนุญาตให้ใช้ประเภทข้อมูลวันที่และเวลา
16 7  views  database 

3
อะไรเร็วกว่า db_query, db_select หรือ EntityFieldQuery
ดังนั้นฉันจึงพยายามที่จะหาสิ่งที่เร็วกว่า db_query, db_select หรือ EntityFieldQuery ขณะนี้ฉันกำลังใช้ EntityFieldQuery ฉันกำลังคว้ารายการโหนดประมาณ 1,600 รายการ ฉันรู้ว่านี่สามารถเก็บภาษีได้ในระบบดังนั้นฉันแค่ต้องการคิดออกว่าเป็นตัวเลือกที่ดีที่สุดในการคว้า 1600 โหนด การโกนเป็นวินาทีหรือแม้กระทั่งมิลลิวินาทีจะมีความสำคัญมากกับแอปพลิเคชันที่ฉันกำลังสร้าง ขอบคุณล่วงหน้าสำหรับคำตอบของคุณ
15 database 

1
อะไรคือสาเหตุที่ทำให้ Views เข้าชมอย่างสม่ำเสมอ แต่ไม่พบมุมมองที่จัดทำโดยโมดูลฟอรัมขั้นสูง
ฉันได้รับข้อผิดพลาดบ่อยครั้งเป็นระยะ ๆ จากโมดูลฟอรัมขั้นสูงที่ทำให้เกิดข้อผิดพลาด 500 เมื่อมันเกิดขึ้น (WSOD) เกี่ยวกับการผลิตมันเกิดขึ้นประมาณ 20 ครั้งต่อชั่วโมงหรือประมาณ 2-3% ของหน้าเว็บบอร์ดทั้งหมดโหลดต่อชั่วโมง มันเป็นระยะ ๆ อย่างต่อเนื่อง ในพื้นที่ฉันไม่สามารถทำซ้ำข้อผิดพลาดได้อย่างสม่ำเสมอ แต่เกิดขึ้น ข้อผิดพลาดเปิดอยู่ บรรทัดที่ 232 ของไซต์ / ทั้งหมด / modules / contrib / advanced_forum / include / core-overrides.inc`: การเรียกไปยังวิธีที่ไม่ได้กำหนด stdClass :: preview () ปัญหาอยู่กับฟังก์ชั่น advanced_forum_get_topics (): function advanced_forum_get_topics($tid, $sortby, $forum_per_page, $sort_form = TRUE) { $term = …
15 7  views  nodes  pantheon  database 

1
db_insert ปลอดภัยหรือไม่?
ฉันใช้วิธี Drupal 7 db_insertเพื่อแทรกข้อมูลลงในตารางที่กำหนดเองในฐานข้อมูล Drupal ฉันได้อ่านว่านี่เป็นวิธีที่ต้องการ แต่ฉันได้อ่านรหัสและ doco แล้วและฉันไม่สามารถเห็นได้ว่ามีการแยกวิเคราะห์ค่าใดหรือบอกฉันว่าค่าเหล่านี้ปลอดภัย ค่าบางอย่างมาจากผู้ใช้ดังนั้นฉันต้องตรวจสอบการโจมตี SQL Injection นี่คือตัวอย่างที่ฉันกำลังอ่านซึ่ง Drupal 6 วิเคราะห์ค่าและรุ่น drupal 7 ไม่ได้ <?php // Drupal 6 version db_query('INSERT INTO {vchess_games} (gid, timestamps, white, black, state, board_white, board_black) ' . "VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s')", $gid, $timestamps, $game['white'], $game['black'], $state, $board_white, …

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