我正在运行一个没有mysql错误的脚本,但没有在数据库表中写入任何内容。
$team1 = 75;
$con = mysqli_connect("localhost","user","pwd");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_select_db($con,"database") or die ("no database");
$sql=" update TABLENAME set
GAME1 = case when GAME1 = '' then $team1 else GAME1 end,
GAME2 = case when GAME2 = '' then $team1 else GAME2 end,
GAME3 = case when GAME3 = '' then $team1 else GAME3 end
WHERE ID = 140 ";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
当我运行php代码时,它回应“添加了1条记录”,但表中没有添加任何记录。
有什么问题?
感谢。
修改
当我运行echo $ sql时;我明白了:
update TABLENAME set GAME1 = case when GAME1 = '' then 75 else GAME1 end, GAME2 = case when GAME2 = '' then 75 else GAME2 end,GAME3 = case when GAME3 = '' then 75 else GAME3 end WHERE ID = 140
答案 0 :(得分:2)
mysqli_query将返回false。如果在执行查询时发生错误,则会捕获代码。 很好 :-) 但是,查询可以在没有任何错误的情况下执行,但不提供您期望的结果。例如,这可能是因为未满足where / when语句之一。 要调试它,请回显您的查询,并直接在db:
上执行它echo $sql;