我有以下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”。这是由于角色ñ。
答案 0 :(得分:0)
试试这个应该有效
$result=mysql_db_query($dbname,"SELECT Titulo FROM Completa WHERE Año=$year ;",$db);
你可以删除强制转换为int它没有任何意义,因为你将一个字符串转换为int然后int转换为string(字符串和变量之间的点将每个东西连接成字符串)