2014-10-19 100 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,可以吗?

感谢