【发布时间】:2015-11-11 18:47:44
【问题描述】:
我遇到了一些 sql 问题...下面有一个工作和不工作的例子。我对它们进行了硬编码,以便于查看。
$deleteData = $con->prepare("DELETE FROM markers WHERE sid=? AND user_id=? AND lat=? AND lng=?");
$deleteData->bind_param("iidd", $sid, $user_id,$lat,$lng);
$sid= '239';
$user_id = '2';
$lat = '39.724869';
$lng = '-91.400116';
$deleteData -> execute();
当我尝试在 bind_param 中使用 double 类型进行删除时,某些原因不起作用。有什么建议么?我在 lat lng 周围用或不用 '' 都改变了它,仍然不起作用。
如果我把它改成下面,它删除就好了。
$deleteData = $con->prepare("DELETE FROM markers WHERE sid=? AND user_id=?);
$deleteData->bind_param("ii", $sid, $user_id);
$sid= '239';
$user_id = '2';
$deleteData -> execute();
【问题讨论】:
-
“不起作用”,我假设您的意思是您没有收到错误,但您希望删除的记录实际上也没有被删除。准确吗?
-
是的。没有错误,也没有删除任何内容...
-
哪个 RDBMS?可能与您的系统文化有关。一些文化期望逗号作为小数分隔符。还有一个愚蠢的问题:你真的确定有适合所有 4 个参数的数据吗?
-
@Shnugo 感谢您的调查。当我与两个相同的值进行比较时,它受到公差(选择作为答案)的奇怪影响。但它起作用了。
-
@SQLNub,很高兴你能解决这个问题。处理浮点数可能很棘手:-)
标签: sql prepared-statement sql-delete