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 回答