使用php无法在mysql查询中传递整数

时间:2017-05-07 19:38:50

标签: php html mysql

我有以下php代码:

<?php

$servername = "127.0.0.1";
$username = "TISD";
$password = "conex2017";
$dbname = "45868972A-15473654J";

$year=$_POST['year'];
$yearInt=(int)$year;

// Create connection
$db=mysql_connect($servername,$username,$password) or die("Error in Mysql connection"); 


$result=mysql_db_query($dbname,"SELECT Titulo FROM Completa WHERE Año='".$yearInt."';",$db);


print("Listado de ejemplares para el anio dado:");
print("<BR>");
$contador = 0;

if($result === FALSE) { 
    die(mysql_error()); // TODO: better error handling
}

while ($row=mysql_fetch_array($result)) {
  $contador = $contador + 1;
  print ($contador);
  print (": ");
  print($row["Titulo"]);
  print("<BR>");
} 

mysql_close(); 

?>

这个php从表单接收一个名为“year”的字符串变量,我将其转换为int,名称为yearInt,(一切正确,直到这里)。当我执行脚本时,我得到以下错误:

  

Listado de ejemplares para el anio dado:   您的SQL语法有错误;查看与您的MariaDB服务器版本对应的手册,以便在第1行'±o ='1994''附近使用正确的语法

我在这里尝试过解答php integer variable pass in mysql query?,但它对我不起作用。

%%%% SOLUTION %%%%

我已将我的数据库更改列“Año”修改为“Anio”。这是由于角色ñ。

1 个答案:

答案 0 :(得分:0)

试试这个应该有效

$result=mysql_db_query($dbname,"SELECT Titulo FROM Completa WHERE Año=$year ;",$db);

你可以删除强制转换为int它没有任何意义,因为你将一个字符串转换为int然后int转换为string(字符串和变量之间的点将每个东西连接成字符串)