2

このエラーを解決する方法

SQL 構文にエラーがあります。1 行目の '\'%VALUE%\' LIMIT 60 , 20' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

問題のあるコードは

  var nombreBuscado = $('input[name=nombreBuscado]').val();
    if (nombreBuscado !== "") {

    statement = " VIEW WHERE COLUMN  LIKE  " + "\'%" + nombreBuscado + "%\'" ;
}

不正なSQLは

SELECT * FROM VIEW WHERE COLUMN LIKE \'%VALUE%\' LIMIT 60 , 20

EDITED選択はビューの上にあり、大文字と小文字を区別するようにチェックします

4

1 に答える 1

1

次のようなものが必要です。

var nombreBuscado = $('input[name=nombreBuscado]').val();
    if (nombreBuscado !== "") {

    statement=" VST_ContribuyentesConPV WHERE NOM_CONTRIBUYENTE LIKE  " 
                + "'%" + nombreBuscado + "%'" ;
}

二重引用符で区切られた文字列の内側にいるため、エスケープする'必要はありません。これは印刷されます:

SELECT * FROM VST_ContribuyentesConPV WHERE NOM_CONTRIBUYENTE LIKE '%VALUE%'

二重引用符を使用する場合は、エスケープする必要があります。

var nombreBuscado = $('input[name=nombreBuscado]').val();
    if (nombreBuscado !== "") {

    statement=" VST_ContribuyentesConPV WHERE NOM_CONTRIBUYENTE LIKE  " 
                + "\"%" + nombreBuscado + "%\"" ;
}

これは出力されます:

SELECT * FROM VST_ContribuyentesConPV WHERE NOM_CONTRIBUYENTE LIKE "%VALUE%"

最後のオプションは、すべてを に置き換えること"です'。これにより、エスケープ ( \') が機能します。

var nombreBuscado = $('input[name=nombreBuscado]').val();
    if (nombreBuscado !== "") {

    statement=' VST_ContribuyentesConPV WHERE NOM_CONTRIBUYENTE LIKE  ' 
                + '\'%' + nombreBuscado + '%\'' ;
}

jsFiddle demo

于 2013-10-04T21:26:35.140 に答える