无法将字符串传递给SQL查询

时间:2012-11-21 16:04:05

标签: php mysql

我有以下代码:

    $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'

2 个答案:

答案 0 :(得分:3)

尝试:

$ RefEquipamento =“'”。 mysql_real_escape_string($ _ GET ['ID'])。 “'”; 所以mysql会将它作为一个字符串来处理。

OR

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

答案 1 :(得分:1)

如果您向MySQL命令发送一个单词,而不用 - >标记; '< ---- MySQL了解你是在给出一个或多个字段的名称。

请记住,无论如何,你需要将一个单词作为变量,你需要标记它。

该号码不需要特殊标记

Yoni Hassin的回答是解决方案,将其标记为答案