Php MySQL中使用VARBINARY列的Where子句
我在MySQLPhp MySQL中使用VARBINARY列的Where子句,php,mysql,binary,Php,Mysql,Binary,我在MySQLip\u address中有一个列,它是VARBINARY(16),我正试图在PHP中以它为条件执行where子句: $ip_address = inet_pton($ip_address); $SQL = "SELECT location, added FROM ips WHERE ip_address = BINARY '" . $ip_a
ip\u address
中有一个列,它是VARBINARY(16)
,我正试图在PHP
中以它为条件执行where子句:
$ip_address = inet_pton($ip_address);
$SQL = "SELECT location,
added
FROM ips
WHERE ip_address = BINARY '" . $ip_address . "'";
...
但是,这将返回0
行。我做错了什么?尝试使用:
小心那类事情。插入到字符串中的原始二进制“垃圾”可以自然地包含SQL元字符(
”
),并破坏SQL。
$stmt = $conn->stmt_init();
$SQL = "SELECT location, added FROM ips WHERE ip_address = BINARY ?";
$stmt->prepare($sql);
$stmt->bind_param('s', $ip_address);
$stmt->bind_result($location, $added);
$stmt->execute();
$stmt->fetch();