2014-11-18 2 views
0

, когда я запускаю этотгде положение не работает в MySQL

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

$info = mysql_fetch_array($data); 

Это работает отлично. но когда я запускаю этот

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

вышеописанного IPaddress моего типа имени столбца VARCHAR (255) в таблицы smslogs.

Это не работает даже не вдаваться в ниже в то время как петля

while($info = mysql_fetch_array($data)) 

Я также попытался это

$ip="36.21.54.125"; 

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

, но безрезультатно.

Вы можете мне помочь?

+0

Что вы подразумеваете под словом «Не работает» - выбросив ошибку или просто не получив никаких результатов? – splig

+1

Вы действительно пробовали этот запрос через PHP 'SELECT * WHERE ipaddress = '". $ Ip. "''. Это синтаксически неверно. Сначала создайте запрос на терминале MySQL, а затем вставьте его в свой код. – Tiny

+0

Извините, я опоздал! @leppie, как и ваше предложение спасибо. – Ain

ответ

0

Try:

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

Это должно работать, если ваши поля IPAddress содержат дополнительные пробелы, кроме фактического адреса IP. TRIM удалит их, оставив только те данные, которые вам нужны.

0

Любой из этих двух кодов решит вашу проблему. Первый код предполагает, что ipaddress поступает из входных данных формы. Итак, я дезинфицировал его с помощью функции mysql_real_escape_string() против SQL Injection Attack. Пока вывод содержимого, , я обработал его, используя htmlentities() против атаки XSS. Эй, подождите, почему вы все еще используете устаревшие соединения mysql, лучше начать использовать Mysqli или PDO, с помощью которого выполняет автоматическую дезинфекцию входных переменных формы и гарантирует, что атака SQL Injection невозможна.

<?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; 


?> 
0

привет спасибо вся проблема решена с помощью кода ниже

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

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

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

Это было получить сообщение об ошибке.

Смежные вопросы