1

私は次のコードを持っています:

    $RefEquipamento = mysql_real_escape_string($_GET['ID']);
    mysql_select_db($database_connLOOPGEST, $connLOOPGEST);
    $query_rs_equipamento = sprintf("SELECT * FROM  clientes_listaequipamentos WHERE referenciacliente = $RefEquipamento ORDER BY datacriacao_loop DESC LIMIT 1");
    $rs_equipamento = mysql_query($query_rs_equipamento, $connLOOPGEST) or die(mysql_error());
    $row_rs_equipamento = mysql_fetch_assoc($rs_equipamento);
    $totalRows_rs_equipamento = mysql_num_rows($rs_equipamento);

    echo json_encode($row_rs_equipamento);

私はPHPやMySQLの専門家ではなく、何かを学ぼうとしています。Dreamweaverを使用しています。

上記のコードは、引数として数値を渡すと機能します(たとえば、$ RefEquipamentoが200456の場合)。これは正常に機能しますが、文字列を渡そうとすると(たとえば、文字列「equip1」を渡すと、これは機能しません。動作すると、エコーによって次のメッセージが表示されます。

"'where句'の不明な列'equip1'"

4

2 に答える 2

3

試す:

$ RefEquipamento="'"。mysql_real_escape_string($ _ GET ['ID'])。"'"; したがって、mysqlはそれを文字列として処理します。

また

$ query_rs_equipamento = sprintf( "SELECT * FROM clientes_listaequipamentos WHERE referenciacliente ='$ RefEquipamento' ORDER BY datacriacao_loop DESC LIMIT 1");

于 2012-11-21T16:05:02.840 に答える
1

MySQLコマンドに->'<----でマークせずに単語を送信する場合MySQLフィールドまたは列の名前を指定していることを理解します。

常に単語を変数として貼り付ける必要があり、マークを付ける必要があることを忘れないでください。

番号に特別なマークは必要ありません

Yoni Hassinの回答が解決策であり、回答としてマークします

于 2012-11-21T16:08:53.460 に答える