У меня есть оператор mysql php pdo, который имеет одинарные кавычки, чтобы вызвать функцию MOSQGolocation «POINT» как таковую.Заявление php PDO sql с одинарными кавычками
$sql = "INSERT INTO userTrip
(userId, fromLat, fromLon, fromLoc, fromPOI,
toLat, toLon, toLoc, toPOI,
tripFinished, isMatched, departureTime, createdAt)
values
(:user,:fromLat,:fromLon, GeomFromText('POINT(:fromLat1 :fromLon1)'),:fromPOI,:toLat,
:toLon, GeomFromText('POINT(:toLat1 :toLon1)'),:toPOI,0,0,:departureTime,:date)";
$stmt = $db->prepare($sql);
$stmt->bindParam(':user', $userId, PDO::PARAM_INT);
$stmt->bindParam(':fromLat', $fromLat, PDO::PARAM_STR);
$stmt->bindParam(':fromLon', $fromLon, PDO::PARAM_STR);
$stmt->bindParam(":fromLat1", $fromLat, PDO::PARAM_STR);
$stmt->bindParam(':fromLon1', $fromLon, PDO::PARAM_STR);
$stmt->bindParam(':fromPOI', $fromPOI, PDO::PARAM_STR);
$stmt->bindParam(':toLat', $toLat, PDO::PARAM_STR);
$stmt->bindParam(':toLon', $toLon, PDO::PARAM_STR);
$stmt->bindParam(':toLat1', $toLat, PDO::PARAM_STR);
$stmt->bindParam(':toLon1', $toLon, PDO::PARAM_STR);
$stmt->bindParam(':toPOI', $toPOI, PDO::PARAM_STR);
$stmt->bindParam(':departureTime', $departureTime, PDO::PARAM_STR);
$stmt->bindParam(':date', date('Y-m-d H:i:s'), PDO::PARAM_STR);
когда я выполнить запрос он генерирует исключение «PDOStatement :: Execute(): SQLSTATE [HY093]: Неверный номер параметра: число связанных переменных не соответствует количеству жетонов», даже если число параметров являются правильными. Я подозреваю, что одиночные кавычки выбрасывают запрос, но мне нужно их вставить. Я попытался убежать от них, используя обратную косую черту, и все остальное, о чем я мог подумать, но запрос не будет выполнен. Есть ли способ обойти это?
Yup thanks! Я на самом деле столкнулся с этим сообщением, которое по сути является тем же, что вы предлагаете выше. Спасибо! http://stackoverflow.com/questions/10254558/php-pdo-prepared-statements-and-value-binding-gives-invalid-parameter-number-err?rq=1 – chintan