Php 整数值不正确:'';对于列错误

Php 整数值不正确:'';对于列错误,php,mysql,Php,Mysql,我得到列country\u id的“不正确的整数值:“”。有时我的下拉列表隐藏在表单中。所以我不知道如何处理这种情况。这是我的密码。谢谢你的帮助 $countryId = isset($_POST['country']) ? $_POST['country'] : 0; $inserSQL = "INSERT INTO Table1(country_id) VALUES('" .$countryId. "')"; $Result1 = mysql_query($inserSQL ) or d

我得到列country\u id的“不正确的整数值:“”。有时我的下拉列表隐藏在表单中。所以我不知道如何处理这种情况。这是我的密码。谢谢你的帮助

$countryId = isset($_POST['country']) ? $_POST['country'] : 0;

$inserSQL = "INSERT INTO Table1(country_id) VALUES('" .$countryId. "')";

$Result1 = mysql_query($inserSQL ) or die(mysql_error());

您正在将
'
添加到
$countryId
值中。因为需要整数,所以不必使用它们。试试这个:

$countryId = isset($_POST['country']) ? (int)$_POST['country'] : 0;

$inserSQL = "INSERT INTO Table1(country_id) VALUES($countryId)";

$Result1 = mysql_query($inserSQL ) or die(mysql_error());

您正在将
'
添加到
$countryId
值中。因为需要整数,所以不必使用它们。试试这个:

$countryId = isset($_POST['country']) ? (int)$_POST['country'] : 0;

$inserSQL = "INSERT INTO Table1(country_id) VALUES($countryId)";

$Result1 = mysql_query($inserSQL ) or die(mysql_error());

我曾经遇到过这个问题,显然我没有输入
0
,而是输入了
O
“字母O”,数据库中不需要这个值,因为数据库字段只接受整数


确保从代码中传递的值是整数类型。

我曾经遇到过这个问题,显然我没有输入
0
而是输入了
O
“字母O”,数据库中不需要该值,因为数据库字段只接受整数


确保从代码中传递的值是整数类型。

有点明显,但是…Sql语句周围的双引号或单引号在哪里?请查看EmCo答案。它包含了您需要的所有内容,但是…Sql语句周围的双引号或单引号在哪里?看看EmCo的答案。它有你所需要的一切。真正的问题不是数据周围的引用,而是$u POST['country']可能返回空白或空的事实。MySQL将“”解释为空字符串,而不是int,而“0”将识别并自动转换为int。这段代码之所以有效,是因为$\u POST['country']上的(int)类型转换将(int)'转换为0。真正的问题不是数据周围的引号,而是$\u POST['country']可能返回为空。MySQL将“”解释为空字符串而不是int,而“0”将识别并自动转换为int。此代码之所以有效,是因为$\u POST['country']上的(int)类型转换将(int)'转换为0。