2012-06-21 27 views
14

私はMagentoの中で文字列をエスケープしたいが、私はmysql_real_escape_stringを使用していたとき、私は警告を取得しています。magentoでmysqlをエスケープする方法は?

警告:mysql_real_escape_stringの() [function.mysql-実エスケープ文字列]:ソケット「/var/lib/mysql/mysql.socを介してローカルのMySQL サーバーに接続できません.... '

私はmagentoのコアmysqlエスケープ機能を見つけることができませんでした。では、私はどうしたらいいですか?

+0

はい、まだ答えを見つけるためにグーグル。 – user1463076

+0

試し:http://forums.cpanel.net/f354/cant-connect-local-mysql-server-through-socket-var-lib-mysql-mysql-sock-111-a-78444.html とします。http ://stackoverflow.com/questions/5376427/cant-connect-to-local-mysql-server-through-socket-var-mysql-mysql-sock-38 – alfasin

答えて

24

は、クエリ文字列をエスケープし、周囲の単一引用符を追加するためにこれを使用します。

Mage::getSingleton('core/resource')->getConnection('default_write')->quote($string); 

あなたが必要な場合は、さらに詳細を引用するためにVarien_Db_Adapter_Pdo_Mysqlを調べることができます。

+0

おかげで、この機能はよく文字列をエスケープしています。また、文字列の先頭と末尾に引用符を追加します。私はそれが今働くことを願っています。 – user1463076

+1

質問にも回答してください。 – Vinai

+1

この見積もりは、文字列の先頭と末尾に引用符を追加していました。それから、私はマジェントをエスケープ機能なしでテストし、文字列をエスケープする必要はありません。私はmagentoがデフォルトのエスケープ機能を持っていると思います。私のコード '($ tbl_customer = getMazeTable( "customer_entity"); \t \t \t \t \t \t $接続=メイジ:: getSingleton( 'コア/リソース') \t \t \t \t \t \t \t - >のgetConnection( 'core_read' ); \t \t \t \t \t \t $ \t \t \t \t \t \t 0)(選択> = $ connection-を選択- >($のtbl_customer) \t \t \t \t \t \t \tから - >( 'メール=?'、$メール);答えとして) ' – user1463076

7

私は、Magentoのは、あなたがバインドされたパラメータを使用して、自動的にエスケープ処理するPDOに基づいて、DBアクセス層を、使用していますね。例からUsing Magento Methods to write Insert Queries with care for SQL Injection

$write = Mage::getSingleton("core/resource")->getConnection("core_write"); 

// Concatenated with . for readability 
$query = "insert into mage_example " 
     . "(name, email, company, description, status, date) values " 
     . "(:name, :email, :company, :desc, 0, NOW())"; 

$binds = array(
    'name' => "name' or 1=1", 
    'email' => "email", 
    'company' => "company", 
    'desc' => "desc", 
); 
$write->query($query, $binds); 
+1

これはリンクで答える理由の完璧な例ですが良いアイデアではありません:リンクがダウンしています。 – OSdave

+0

修正しました。downvoteを削除してください。 – siliconrockstar

+1

は、私は – OSdave

関連する問題