その同じページから:
2010年11月18日、W3Cは、WebSQLデータベースが非推奨の仕様であることを発表しました。これは、Web開発者がこのテクノロジを使用しないことをお勧めします。これは、仕様が新しい更新を効果的に受け取らず、ブラウザベンダーがこのテクノロジをサポートすることを推奨されていないためです。
http://www.w3.org/TR/webdatabaseの大きな警告も参照してください。
しかし、あなたの質問に答えるために:私が知る限り:いいえ。自分のプレースホルダーを実際の値に置き換えて「ラッパー」を作成することもできますが、気にする価値はないと思います。
:foo
暗闇の中での別のショットは、プレースホルダーとして使用しようとすることです。AFAIKほとんどのブラウザはWebデータベースの実装に(d)SQLiteを使用しており、頭のてっぺんから 調べてみると、 SQLiteはいくつかの形式で名前付きパラメータをサポートしています。:parametername
私は次のようなものを想像していますが、実際にどのように値を提供するのかわかりません[{'foo': 'bar'}, {'baz': 'bat'}]
編集私はあなたの例
で次のよう
に多くの順列を試しました:
var p = {};
p.aa = todoText;
p.bb = addedOn;
tx.executeSql("INSERT INTO todo(todo, added_on) VALUES (:aa, :bb)",
p,
...
});
または:
tx.executeSql("INSERT INTO todo(todo, added_on) VALUES (:aa, :bb)",
{"aa": todoText, "bb": addedOn},
...
});
または:
tx.executeSql("INSERT INTO todo(todo, added_on) VALUES (@aa, @bb)",
{"aa": todoText, "bb": addedOn},
...
});
または:
tx.executeSql("INSERT INTO todo(todo, added_on) VALUES (?aa, ?bb)",
{"aa": todoText, "bb": addedOn},
...
});
...そしてChrome25にはさらに多くのものがあります。それらのどれも、名前付きパラメーターがサポートされていることを示していないようです。私が仕事に取り掛かることができるのは、 thパラメータ位置(または必要に応じてインデックス)n
にマップするための単純なth位置値です。n
絶対に方法がないと言っているわけではありません。たぶん、それを見つけられなかったか、正しい使い方を推測できなかったのかもしれませんが、あなたは運が悪いと思います。そして、コメントで述べたように、私や他の誰かがそれを動作させたとしても、私はそれに依存しません(文書化されていないだけでなく、とにかく非推奨であるため)、おそらく他の多くの(ほとんどの?)ブラウザで失敗します。正直に言うと、これを機能させるのは時間の無駄です。