当我运行这个
时$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 . "' ");
但无济于事。
你能帮我吗?
答案 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());
}
检索错误。