PHP bindParam变量错误
PHP bindParam variable error
在我的网络服务中,我遇到了 bindParams
的问题。这是我的代码:
$stmt = $this->db->prepare("SELECT data FROM sless WHERE ST_CONTAINS(data.area, Point(:query))");
$stmt->bindParam(':query', $queryText, PDO::PARAM_STR);
但 :query
变量未正确适应此代码。
当我回显 $queryText
时,它完美地给出了 29.029087,40.990361
。但在代码中它不起作用。顺便说一句,当我写 29.029087,40.990361
纬度和经度而不是变量 :query
时,我的代码运行良好。这是代码:
$stmt = $this->db->prepare("SELECT data FROM sless WHERE ST_CONTAINS(data.area, Point(29.029087,40.990361))");
我该如何解决这个问题?
分别尝试两个坐标
list($lat, $lng) = split(',', $queryText);
$stmt = $this->db->prepare("SELECT data FROM sless WHERE ST_CONTAINS(data.area, Point(:lat,:lng))");
$stmt->bindParam(':lat', $lat, PDO::PARAM_STR);
$stmt->bindParam(':lng', $lng, PDO::PARAM_STR);
可能是因为函数 Point() 需要两个像这样的数字参数:
Point(1, 2)
而你只给出了一个这样的字符串参数:
Point("1, 2")
在我的网络服务中,我遇到了 bindParams
的问题。这是我的代码:
$stmt = $this->db->prepare("SELECT data FROM sless WHERE ST_CONTAINS(data.area, Point(:query))");
$stmt->bindParam(':query', $queryText, PDO::PARAM_STR);
但 :query
变量未正确适应此代码。
当我回显 $queryText
时,它完美地给出了 29.029087,40.990361
。但在代码中它不起作用。顺便说一句,当我写 29.029087,40.990361
纬度和经度而不是变量 :query
时,我的代码运行良好。这是代码:
$stmt = $this->db->prepare("SELECT data FROM sless WHERE ST_CONTAINS(data.area, Point(29.029087,40.990361))");
我该如何解决这个问题?
分别尝试两个坐标
list($lat, $lng) = split(',', $queryText);
$stmt = $this->db->prepare("SELECT data FROM sless WHERE ST_CONTAINS(data.area, Point(:lat,:lng))");
$stmt->bindParam(':lat', $lat, PDO::PARAM_STR);
$stmt->bindParam(':lng', $lng, PDO::PARAM_STR);
可能是因为函数 Point() 需要两个像这样的数字参数:
Point(1, 2)
而你只给出了一个这样的字符串参数:
Point("1, 2")