'where子句'中的未知列'H'

时间:2015-06-28 22:46:13

标签: mysql

我已经尝试了我能想到的所有内容来获取查询来识别 angular.module('nightlife15App') .controller('MainCtrl', function ($scope, getCity, $modal) { $scope.city; $scope.bars; $scope.getBars = function() { getCity.findBars($scope.city); $scope.bars = getCity.sendBars(); }; $scope.open = function (idx) { var modalInstance = $modal.open({ animation: $scope.animationsEnabled, templateUrl: idx+'-barModal.html', controller: 'ModalInstanceCtrl' }); }; }) 子句。

WHERE等于H-001,$sn是列名

以下是查询:

sn

如果我不使用$result = mysql_query("SELECT * FROM `insp` WHERE sn = $sn") or die(mysql_error()); 子句,我可以将所有内容都删除。如果我WHERE是一个没有连字符的直号,我可以得到结果。我认为$sn需要一些东西才能将WHERE识别为字符串。

2 个答案:

答案 0 :(得分:0)

字符串必须包含在引号内。

所以,你需要的sql看起来像: “SELECT * FROM insp WHERE sn ='H-001'”

试试这个:

$sn = "H-001";
$sql = "SELECT * FROM insp WHERE sn = '" . $sn . "'";
$result = mysql_query($sql) or die(mysql_error());

答案 1 :(得分:0)

你应该用倒置的逗号括起你的变量。

使代码成为

$result = mysql_query('SELECT * FROM `insp` WHERE `sn` = "'.$sn.'"') or die(mysql_error());

也请尽快开始使用新的Mysqli功能或PDO。

由于不推荐使用mysql本机函数且非常不安全

更新: - 由于您提及表单输入,因此可以尝试对值进行类型转换,如下所示。

//suppose the value is coming from $_POST['srno'];

$sn = (string) $_POST['srno'];

.....