переводил приложения с mysql на mssql, и что то пошло нет, помоги, прикладываю рабочий код на mysql Код (Text): <?php header('Access-Control-Allow-Origin: *'); header('Content-Type: application/json'); if(!isset($_POST)) die(); session_start(); $response = []; $con = mysqli_connect('localhost', 'root', '', 'test_site'); $username = mysqli_real_escape_string($con, $_POST['username']); $password = mysqli_real_escape_string($con, $_POST['password']); $query = "SELECT * FROM `users` WHERE username='$username' AND password='$password'"; $result = mysqli_query($con, $query); if(mysqli_num_rows($result) > 0) { $response['status'] = 'loggedin'; $response['user'] = $username; $response['id'] = md5(uniqid()); $_SESSION['id'] = $response['id']; $_SESSION['user'] = $username; } else { $response['status'] = 'error'; } echo json_encode($response); и то что у меня получилось, но не работает, такую же таблицу создал, все срабатывает, вроде ошибок но по определенному username и password из базы данных не заходит Код (Text): <?php header('Access-Control-Allow-Origin: *'); header('Content-Type: application/json'); if(!isset($_POST)) die(); session_start(); $response = []; $servername = 'localhost'; $options = [ 'UID' => 'sa', // имя пользователя, имеющего доступ к БД 'PWD' => '1234', // пароль 'Database' => 'test_site' ]; $conn = sqlsrv_connect($servername, $options); $username = sqlsrv_prepare($conn, $_POST['username']); $password = sqlsrv_prepare($conn, $_POST['password']); $sql = "SELECT * FROM [users] WHERE username='$username' AND password='$password'"; $result = sqlsrv_query($conn, $sql); if(sqlsrv_num_rows($result) > 0) { $response['status'] = 'loggedin'; $response['user'] = $username; $response['id'] = md5(uniqid()); $_SESSION['id'] = $response['id']; $_SESSION['user'] = $username; } else { $response['status'] = 'error'; } echo json_encode($response);
sqlsrv_prepare не является аналогом mysqli_real_escape_string ! ппц ) читай справку по функциям прежде чем использовать http://php.net/sqlsrv_prepare http://php.net/sqlsrv_query
эх, один в один заменив только имена функций, не получится. надо осознанно переписывать. нет аналога *escape — используй параметры запроса. все функции описаны в официальной документации https://secure.php.net/manual/en/ref.sqlsrv В sqlsrv_query() можно подставлять параметры запроса. так что никакие предварительные *escape или addslashes не нужны, вместо этого используй плейсхолдеры в виде вопросиков в теле SQL. доки читай вместе с комментариями, ёмана. [offtopic] есть два пути: а) изучить документацию и осознанно вносить правки или б) заплатить тому, кто умеет [/offtopic]