【发布时间】:2012-11-01 12:44:13
【问题描述】:
我感觉我的语法不正确,但我无法缩小范围。我在 phpMyAdmin SQL 查询中运行该语句没有问题,所以希望我能指出正确的方向。我的代码如下:
else if ($resultdetails === 1) {
$query3 = "update customer_det set `10k`='$_10k',
`14k`='$_14k', `18k`='$_18k', `21k`='$_21k', `22k`='$_22k',
`24k`='$_24k', `925k`='$_925k', `coins`='$coins', `bars`='$bars'
where `id` = '".$uid."'";
$result3 = mysql_query($query3);
}
$resultdetails 是一个带有 EXISTS 函数的变量集。在 SQL 查询中,它为我返回 1,因为我要查找的行确实存在。所以应该没有问题。
我尝试了双重==,以及三重,结果似乎没有任何差异。我相信三元组=== 意味着它是相同的,即数据类型相同且值相同。
我认为这里的问题是 WHERE 语句。任何想法或建议将不胜感激。我忘了提到customer_det 是要更新的表,id 是主键,自动递增。我也从数据库中提取了$uid 变量。
【问题讨论】:
-
您是否尝试过在 phpmyadmin 中直接针对您的数据库运行查询(或者至少是一个测试!)它会让您更好地了解任何语法错误等。
-
查询在 phpMyAdmin SQL 查询框中运行良好。这就是为什么我不确定为什么它不起作用。
-
$uid 的数据类型是什么?如果它的 int 从您的查询中删除 ''。
-
所以如果你输出 $query3 这样你就可以看到里面发生了什么。是否有意义。看不到语法错误,$uid 不是你认为的那样,更有可能
-
嗯,我相信它是一个整数。我可以看到问题是“”正在尝试将数据类型作为字符串。