PHP PDO с Microsoft SQL Server: проблемы с подготовкой операторов?

Я довольно новичок в PDO. Я пытаюсь выполнить запрос (Microsoft Sql Server). В конце концов я собираюсь добавить больше полей после ГДЕ.

$complex = 'Shipping';
$username= 'username';
$password = 'password';
try {
    $conn = new PDO('sqlsrv:Server=server,1433;Database=dbname', $username, $password);
    $query = "SELECT DATA FROM TrimTable WHERE COMPLEX LIKE ?";
    $stmt = $conn->prepare($query, array($complex));
    $stmt->execute();
    while($row = $stmt->fetch())
    {
        echo "$row\n";
    }
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

Я продолжаю получать эту ошибку:

Неустранимая ошибка: вызов функции execute() для необъекта в

Что я делаю неправильно?

ОБНОВИТЬ

Я попробовал это также:

try {
    $conn = new PDO('sqlsrv:Server=mzrefd39,1433;Database=ger_mapv', $username, $password);
    $sth = $conn->prepare("SELECT AREA FROM TrimTable WHERE COMPLEX LIKE ?");
    $sth->execute(array($complex));
    $data = $sth->fetchAll();
    print_r($data);
}

На моей странице я получаю Array(). Я не получаю никаких значений?

1 ответ

Ты можешь использовать bindParam() перед выполнением, попробуйте этот код

$conn = new PDO('sqlsrv:Server=server,1433;Database=dbname', $username, $password);
$query = "SELECT DATA FROM TrimTable WHERE COMPLEX LIKE ?";
$stmt = $conn->prepare($query); // check $complex is removed from this line
$stmt->bindParam(1, $complex);
$stmt->execute();

использование bindParam(); для условия, чтобы выполнить запрос для условий

Другие вопросы по тегам