2014-10-19 101 views
0

PHP不想承認以下行用mysql選擇最大 - PHP

$concatenado = $_POST['concatenado']; 

$consult3= "SELECT MAX(alumno.codigo) as codigo2 from alumno WHERE alumno.codigo LIKE '%'".$concatenado."'%' "; 

瀏覽器只是說數組。

這是MySQL查詢:

SELECT MAX(codigo) as numero from alumno WHERE codigo LIKE "102482901%" 

我想這個代碼行,但不起作用。

%'".$concatenado."'% 
"%".$concatenado."%" 
%'".$concatenado."'%' 

爲什麼?

謝謝。

+0

'「SELECT MAX(alumno.codigo)從alumno codigo2 WHERE alumno.codigo LIKE '%$ concatenado%' 」' – Anthony 2014-10-19 02:39:41

+0

爲了您的字符串連接,'LIKE「%「。$ concatenado。」 %''是正確的。你也可以使用LIKE'%$ concatenado%',因爲變量會自動在雙引號字符串中展開。 – 2014-10-19 02:44:03

+0

由於您的用戶參數沒有[正確轉義](http://bobby-tables.com/php),並且您將'$ _POST'數據直接放入查詢中,這看起來恐怖不安全,從而造成了一個巨大的[SQL注入漏洞](http://bobby-tables.com/)。 – tadman 2014-10-19 02:50:02

回答

0

此代碼:

$concatenado = $_POST['concatenado']; 
$consult3= "SELECT MAX(alumno.codigo) as codigo2 from alumno WHERE alumno.codigo LIKE '%".$concatenado."%'"; 
mysql_select_db($database_Brujula, $Brujula); 
$Result3 = mysql_query($consult3, $Brujula) or die(mysql_error()); 
$numero= mysql_num_rows($Result3); 
$row_Result3 = mysql_fetch_array($Result3); 
print $row_Result3['codigo2']; 
print $numero; 

if ($numero!= 0){ 
    $id = $row_Result3['codigo2']; 
    print $id; 
    $id = $id + 1; 
}else{ 

$inicializador = 001; 
$id = $concatenado.$inicializador; 
} 
print $id; 

代碼打印11,可以嗎?

感謝