我在使用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类型删除时,某些原因并不起作用。有什么建议?我改变它有或没有''在洛杉矶附近,仍然没有工作。
如果我将其更改为以下,则删除就好了。
$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();
答案 0 :(得分:1)
首先,你在第二个例子中有一个sintax错误(缺少字符")。
所有你没有分配$sid
变量。
然后我有一点点愚蠢的问题。您是否知道,在调用方法$blog_id, $user_id ...
之前必须分配变量$deleteData->bind_param()
等?
另外,不要忘记当你比较2个真实值时,你也应该添加一些容差,所以请尝试:
$deleteData = $con->prepare("DELETE FROM markers WHERE sid=? AND user_id=? AND ABS(lat - ?) < 0.0000001 AND ABS(lng - ?) < 0.0000001");
答案 1 :(得分:0)
将sorted = sortBy(comparing fst) a
替换为$blog_id = '239';
,因为这是您在bind_param()语句中使用的变量名。