更新查询不采用整数变量



更新不接受整数变量的查询($user(:-

$user = $_POST["user"];
$user = (int)$user;
$sql = "UPDATE users_meta
SET 
`meta_value` = '$plan_end'
WHERE 
`user_id` = $user AND 
`meta_name` = 'plan_end'";
$conn->query($sql);

mysql数据库中的user_id列设置为int数据类型。

当我简单地输入一个数字而不是变量时,它起作用:-

WHERE 
`user_id` = 37 AND ...

我还尝试过不将数字从字符串转换为int,但没有成功。我有一种感觉,这与引用有关,所以我根据网上的建议玩了一下,但没有一个奏效。

根据我的知识,如果数据库字段是Int类型,那么即使您将其转换为整数类型,它也不能接受字符/字符串值。您必须将数据库字段修改为varchar,或者只向数据库字段传递数值。希望这个建议能解决你的问题。

嗨,我已经在本地测试了您的查询,它运行良好,所以我认为您的查询没有任何问题。

<?php
$mysqli = new mysqli("localhost","root","","test_table");
// Check connection
if ($mysqli -> connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli -> connect_error;
exit();
}

if(@$_POST["user"])
{
$user = $_POST["user"];     
$tasone = $_POST["tasone"];
$user = (int)$user;
$sql = "UPDATE test_table SET `TAS_ONE` = '$tasone' WHERE  `user_id` = $user and `TAS_TWO`='dsadsa'";
$mysqli->query($sql);
}
?>
<form action="" method="post">
<input type="text" id="user" name="user" value=""><br>
<input type="text" id="tasone" name="tasone" value=""><br>
<input type="submit" value="Submit">
</form> 
CREATE TABLE `test_table` (
`USER_ID` int(9) NOT NULL,
`TAS_ONE` varchar(200) NOT NULL,
`TAS_TWO` varchar(200) NOT NULL,
`TAS_THREE` varchar(200) NOT NULL,
`TAS_FOUR` varchar(200) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

最新更新