PHP の関数で、' クオーテーションをつけるものはありますか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/10/12 22:57:38
  • 終了:2006/10/14 18:27:00

回答(5件)

id:kazu1107 No.1

mzk回答回数199ベストアンサー獲得回数142006/10/13 00:35:47

ポイント20pt

質問内容がわかりにくいのでもうちょっと補足説明した方がよろしいかと(汗)

たぶん的外れな回答です。

PHPの関数名にクオーテーションがついているものがあるのかどうか、という質問なら、関数名に使える記号はアンダーバーと、アルファベットと数字だけだから無いはずです。

http://q.hatena.ne.jp/

id:kaiketsu

すみません。'を付加するものです。

'値’とするものです。

addquote とでもいうものです。

つくってもいいのですがあったらとおもって

2006/10/13 08:53:30
id:takagimasahiro No.2

m-takagi回答回数23ベストアンサー獲得回数22006/10/13 09:01:27

ポイント20pt

「関数の名前に『'』」を含むもの」という意味でしたら、そんなものはありません

関数名は、PHP の他のラベルと同じ規則に従います。関数名として有効な 形式は、まず文字かアンダースコアで始まり、その後に任意の数の文字・ 数字・あるいはアンダースコアが続くものです。正規表現で表すと、 [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* となります。

実際に

<?php
function a'b() {
    return true;
}
?>

というスクリプトを書いて実験してみれば、Parse Error になることがわかります。

id:kaiketsu

すみません。単に引数の値に対して,'をつけてかえすだけのものです。

2006/10/13 11:08:00
id:ito-yu No.3

ito-yu回答回数323ベストアンサー獲得回数142006/10/13 11:48:44

ポイント20pt

DB関係の関数で、文字列をDBに適切な形でエスケープしてクォートを付けてくれる物は多数ありますが、ただ'を付けるというのは無いんじゃないでしょうか。

要求仕様がわかれば、どれかが代用できるかもしれません。

以下のそれぞれが、どうなれば目的に叶いますか?

文字列 ' → ''' でいいのか?それとも '\'' か?

文字列 \ → '\' でいいのか?それとも '\\' か?

URLはDBアクセス用のクラスであるPDOのクォート用関数http://jp2.php.net/manual/ja/function.pdo-quote.php

id:toyoshi No.4

toyoshi回答回数67ベストアンサー獲得回数12006/10/14 11:36:38

ポイント20pt

>'値’とするものです。

という関数はありません。

下記のように自力でやるしかないように思います。

function addquote($var){

return "'".$var."'";

}

http://www.hatena.ne.jp

id:HISI No.5

pkb_wn回答回数40ベストアンサー獲得回数42006/10/14 17:24:09

ポイント20pt

[[PostgreSQL]]なら pg_escape_string

http://jp.php.net/manual/ja/function.pg-escape-string.php

[[MySQL]]なら mysql_escape_string

http://jp.php.net/manual/ja/function.mysql-escape-string.php

といったものがあります。

[[Oracle]]やMS [[SQLServer]]には見当たりませんでしたので

MSSQLServerであれば

str_replace("'","''",strValue)

http://jp.php.net/manual/ja/function.str-replace.php

とstr_replace関数で自前指定が必要でしょう。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません