where子句不在mysql中工作

时间:2014-11-18 08:17:33

标签: mysql where-clause

当我运行这个

$data = mysql_query("SELECT * FROM smslogs  ");

$info = mysql_fetch_array( $data );

工作正常。但是当我运行这个

$data = mysql_query("SELECT * FROM smslogs WHERE ipaddress = '36.21.54.125' ");

在ipaddress上面我的列名在表smslogs中键入varchar(255)。

即使没有进入下面的循环

也无法正常工作
while($info = mysql_fetch_array( $data )) 

我也试过这个

$ip="36.21.54.125";

$data = mysql_query("SELECT * WHERE ipaddress = '". $ip . "' ");

但无济于事。

你能帮我吗?

3 个答案:

答案 0 :(得分:0)

尝试:

$data = mysql_query("SELECT * FROM smslogs WHERE TRIM(ipaddress) = '36.21.54.125' ");

如果您的ipaddress字段除了实际的IP地址之外还包含其他空格,这应该有效。 TRIM会删除它们,只留下您需要的数据。

答案 1 :(得分:0)

这两个代码中的任何一个都可以解决您的问题。第一个代码假设ipaddress来自表单输入。 所以我使用mysql_real_escape_string()函数对SQL注入攻击进行了清理。在输出内容时 我使用htmlentities()对XSS攻击进行了清理。 嘿等一下,为什么你还在使用mysql弃用的连接,你最好开始使用Mysqli或PDO 自动清理表单输入变量并确保无法进行SQL注入攻击。

<?php


$db = mysql_connect("localhost","root","345") or die ("connection error");
mysql_select_db("sectona_db") or die ("database error");


?>



<?php

include("db.php");

$ip_id=mysql_real_escape_string($_POST["ip_id"]);




$sql=mysql_query("select * from smslog where ipaddress ='$ip_id'");
while($row=mysql_fetch_array($sql)){


$pr=htmlentities($row['ipaddress'], ENT_QUOTES, "UTF-8");


}

echo $pr;
?>


or



<?php



include("db.php");

$sql=mysql_query("SELECT * FROM smslog where ipaddress='123'");
while($row=mysql_fetch_array($sql)){


$pr=htmlentities($row['ipaddress'], ENT_QUOTES, "UTF-8");


}

echo $pr;


?>

答案 2 :(得分:0)

嗨谢谢大家使用以下代码解决了问题

$sql = 'SELECT * FROM `smslogs` WHERE rcpt= '.$to.' ';

$retval = mysql_query( $sql, $conn );

if(! $retval )
{
die('Could not get data: ' . mysql_error());
}

检索错误。