タグ付けされた質問 「sql」

生のSQLクエリの使用に関する質問。一般的なデータベースに関する質問には、代わりにデータベースタグを使用します。Magentoデータベースアクセスレイヤーに関する質問には、次のような適切なタグを使用します:eav、model、resource-model、collections、install-script


4
モジュールのセットアップスクリプトの使用方法
次の<global>ように、スペース内のモジュールのetc / config.xmlファイルで宣言することにより、独自のモジュールのセットアップスクリプトを使用できます。 <resources> <catalog_setup> <setup> <module>Mage_Catalog</module> <class>Mage_Catalog_Model_Resource_Setup</class> </setup> </catalog_setup> </resources> 一部のモジュールはこのファイルを使用しますがmysql4-install-0.0.1.php、他のモジュールはinstall-0.0.1.php。だから、いつファイル名の前にmysql4を使用し、いつ使用しないのですか? また、セットアップスクリプトが実行されていない場合、なぜ実行されていないのかを調べるにはどうすればよいですか?


1
Zend FrameworkのSQLモデルを使用する場合のSQLインジェクションの脆弱性
テーブルを結合するとき、Zend FrameworkのSQLモデルを使用します。例として、実際のコードを変更しましたが、ポイントが得られると思います。 $this->getSelect()->join( array('sections' => $sectionsTableName), 'main_table.banner_id = pages.banner_id', array() ) ->where("sections.section= '$section' OR sections.section = '0' OR (sections.section = '6' AND ? LIKE main_table.url)",$url) ->group('main_table.banner_id'); ページはajaxでロードされ、$ sectionパラメーターはGETパラメーター(www.example.com/controllerName/index/display/3?paremeter1=example&section=www.example2.com)として送信されます。 誰かが次のようなことを実行した場合の問題は次のとおりです。 www.example.com/controllerName/index/display/3?paremeter1=example&url=(SELECT 3630 FROM(SELECT COUNT(*),CONCAT(0x7170786a71,(SELECT (ELT(3630=3630,1))),0x717a716b71,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a) このようにして、ユーザーはデータベース全体をダンプできます。データは表示されませんが、SQLはダンプを実行するため、SQLのオーバーロードが発生する可能性があります。 質問: そのようなシナリオを防ぐ最良の方法は何ですか? 今、私は以前の顧客を心配しています。このコードを使用すると、テーブルの更新や変更など、さらにリスクの高いアクションを実行できますか?DELETEがsql構文エラーを生成するように、SELECT以外のステートメントをsubselect内に配置できないためだと思います。私は正しいですか? 更新: 私の例は、$セクションの周りに記号があり、したがって注入を行うことができないため、SQL注入の適切な図ではありません。とにかく、これは整数値を期待するとき、および整数入力をフィルタリングしないときに可能です。以下の私のコメントをご覧ください。


2
magento 1.7:product_flat_dataのインデックスを再作成できません
magentoデータベースのインデックスを再作成しようとすると、次のエラーが発生します。 製品フラットデータインデックスプロセスの不明なエラー:メッセージ 'SQLSTATE [23000]の例外' PDOException ':整合性制約>違反:1452子行を追加または更新できません:外部キー制約が失敗しました>(d014505f。、CONSTRAINT> FK_CAT_PRD_FLAT_1_ENTT_ID_CAT_PRD_ENTT_ENTT_IDFOREIGN KEY(entity_id)> catalog_product_entity> /www/htdocs/w00f5624/lib/Zend/Db/Statement/Pdo.php:228の参照( `e) ' どうすれば修正できますか?
10 magento-1.7  sql  error 

2
Magento 1 SQLクエリ
私は自分の会社のレポート機能をセットアップしている最中です。Imは、Google、Moz、Courierなどからデータを収集しています。レポートの一部として、Magentoからデータも取得したいと考えています。これは私たちのサーバー上の非常に安全なフォルダーでホストされるためです。私が知りたいのは、Magentoデータに対してクエリを実行する最も安全な方法は何ですか? 私は走ることができた Magento外の直接SQLクエリ Magento内のSQLクエリですが、MagentoからSQLクエリを自動的に取り出すのに問題があります Magento API 私のウェブサイトの安全性とパフォーマンスの観点から、私は何をするのが一番ですか?

2
インストールスクリプトを使用して顧客の複数選択属性を作成する方法
多くの記事をフォローしていますが、複数選択属性を作成できません。次のエラーが発生します。 a:5:{i:0; s:50: "属性" exinent1 ""のソースモデル ""が見つかりません; i:1; s:3008: "#0 C:\ wamp \ www \ magento8 \ app \ code \芯。 そして私のスクリプトは: <?php $installer = $this; $installer->startSetup(); $setup = new Mage_Eav_Model_Entity_Setup('core_setup'); $entityTypeId = $setup->getEntityTypeId('customer'); $attributeSetId = $setup->getDefaultAttributeSetId($entityTypeId); $attributeGroupId = $setup->getDefaultAttributeGroupId($entityTypeId, $attributeSetId); $setup->addAttribute('customer', 'exinent1', array( 'input' => 'multiselect', 'type' => 'varchar', …


2
2つのテーブルを結合するモデルデータをロードする方法
テーブルAをターゲットとする単純なモデルAがあるとします。ここで、追加情報を追加する必要があるため、モデルBを作成し、テーブルAのインデックスキーを指す外部キーを使用してそれらの追加情報をテーブルBに保存します。 通常、結合はコレクションで行われますが、モデルをロードした場合、コレクションは呼び出されず、代わりにのみresource modelが使用されます。 モデルAを変更して、表Bのデータもロードする方法を教えてload()ください。
9 model  sql 

7
Magento 2:すべてのカテゴリを一度に削除する方法は?
既存のデータベース(Magentoではない)をMagento 2に同期する実験を行っています。 このプロセスでは、1000を超えるカテゴリを作成しましたが、システムと同期するようにすべてのIDを再配置しました。問題は、「指定されたストアのURLキーが既に存在する」というエラーが発生したため、新しいカテゴリをインポートできなくなったことです。現在、重複するカテゴリを取得しています。 私は最良の解決策はそれらをすべて取り除き、新鮮に輸入することだと思います。私は1.9のこのチュートリアルを見つけました https://gist.github.com/jklance/9664371 新しいデータベースを見ると、小さな違いに気づきました entity_type_idはすべての古いカテゴリテーブルにありますが、新しいテーブルにはありません。 新しいデータベースには、追加のテーブルcatalog_category_product_index_tmpがあります 私の質問はこれらです、 見つけて変更したコードを使用して、entity_type_idを削除 して追加できTRUNCATE TABLE catalog_category_product_index_tmpますか。 それとも私が変更する必要がある以上ですか? または、すべてのカテゴリを削除するためのクリーンなスクリプトを提供してもらえますか? システムにはテスト製品が1つしかないので、心配する必要はありません。

4
単純なMagento 2 CRUDモデルに必要なコードと構成の例?
エンドユーザープログラマーであるMagento 2で新しい「CRUD」モデルを作成するにはどうすればよいですか?つまり、PHPクラスファイルとXML構成ファイルを作成して、 データベーステーブルからデータを作成、読み取り、更新、および削除します この情報を格納する初期データベーステーブルを作成します。 Magento 1では、これはモデル、リソースモデル、セットアップリソースモデル、およびのさまざまなノードによって処理されていましたconfig.xml。Magento 2でこれがどのように処理されるかは100%明確ではありません。 このためのサンプルモジュールまたは明確なチュートリアルはまだありますか?または、既存のコアモデル(CMSページなど)から逆方向に作業することが唯一の選択肢ですか?
8 php  magento2  sql  crud 

1
カテゴリ属性を削除
mysql4-install-0.1.0.phpsqlフォルダー内のファイルを含むモジュールを使用して、2つのカテゴリー属性を挿入しました。 $installer = $this; $installer->startSetup(); $installer->addAttribute('catalog_category', 'short_description', array( 'type' => 'text', 'label' => 'Short Description', 'input' => 'textarea', 'group' => 'General', 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE, 'visible' => true, 'required' => false )); $installer->addAttribute('catalog_category', 'static_block', array( 'type' => 'text', 'label' => 'Brand', 'input' => 'text', 'group' => 'General', 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE, 'visible' …

2
`number = number-1`のように設定するのではなく、値を減らします。Magentoで可能ですか?
アトミックデータベース操作で値をデクリメントする必要があります。Magentoモデルを使用して可能ですか? setNumber($number)のようnumber = $numberに動作しますが、SQLクエリでデクリメントする必要があります。 Magentoで可能ですか、それともSQLクエリを自分で作成する必要がありますか?

4
SQLSTATE [42S02]:ベーステーブルまたはビューが見つかりません:1146テーブル 'core_store'は存在しません
私は何時間も解決策を探し続けてきたので、誰かが私を助けてくれるとありがたいですが、それらはすべてかなりあいまいです。 Webサイトにアクセスしようとすると、次のエラーが表示されます。 リクエストの処理中にエラーが発生しましたSQLSTATE [42S02]:ベーステーブルまたはビューが見つかりません:1146テーブル 'shopstel_magento.core_store'が存在しませんトレース:#0 / home / shopstel / public_html / lib / Zend / Db / Statement。 php(300):Zend_Db_Statement_Pdo-> _ execute(Array)#1 /home/shopstel/public_html/lib/Zend/Db/Adapter/Abstract.php(479 ):Zend_Db_Statement-> execute(Array)#2 / home / shopstel / public_html / lib / Zend / Db / Adapter / Pdo / Abstract.php(238):Zend_Db_Adapter_Abstract-> query( 'SELECT main_ta ...'、Array)#3 / home / …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.