Из Mysql в Postgresql

Natair

Новичок
Есть код написанный для Mysql, тербуеться его переделать под Postgresql. Как ни пробовал, но код работает в Mysql и не работает в Postgresql.

<?php
require_once('dbdata.php');

try {
//читаем параметры
$curPage = $_POST['page'];
$rowsPerPage = $_POST['rows'];
$sortingField = $_POST['sidx'];
$sortingOrder = $_POST['sord'];

//подключаемся к базе
$dbh = new PDO('mysql:host='.$dbHost.';dbname='.$dbName, $dbUser, $dbPass);
//указываем, мы хотим использовать utf8
$dbh->exec('SET CHARACTER SET utf8');

//определяем количество записей в таблице
$rows = $dbh->query('SELECT COUNT(id) AS count FROM users');
$totalRows = $rows->fetch(PDO::FETCH_ASSOC);

$firstRowIndex = $curPage * $rowsPerPage - $rowsPerPage;
//получаем список пользователей из базы
$res = $dbh->query('SELECT * FROM users ORDER BY '.$sortingField.' '.$sortingOrder.' LIMIT '.$firstRowIndex.', '.$rowsPerPage);

//сохраняем номер текущей страницы, общее количество страниц и общее количество записей
$response->page = $curPage;
$response->total = ceil($totalRows['count'] / $rowsPerPage);
$response->records = $totalRows['count'];

$i=0;
while($row = $res->fetch(PDO::FETCH_ASSOC)) {
$response->rows[$i]['id']=$row['id'];
$response->rows[$i]['cell']=array($row['id'], $row['surname'], $row['fname'], $row['lname']);
$i++;
}
echo json_encode($response);
}
catch (PDOException $e) {
echo 'Database error: '.$e->getMessage();
}

// end of getdata.php
 

Фанат

oncle terrible
Команда форума
код не читал, но мне интересно - а сами запросы-то ты переписывал?
и что скрывается за туманной формулировкой "код не работает"? Понятие отладки тебе знакомо?
 

Natair

Новичок
Все это переписывалось под Pоstgresql. Проблема в том, что с помощью Mysql показываеться таблица и позволяет с ней работать, но когда пробую переписать под Pоstgresql таблица не отображаеться.
 

Фанат

oncle terrible
Команда форума
повторю свои вопросы, поскольку ответа на них не получил
SQL запросы переписывались?
в чем конкретно выражается понятие "код не работает"? не с точки зрения наивного юзера, для которого результатом работы кода является волшебным образом возникающая таблица, а с точки зрения программиста, для которого код состоит из отдельных операторов, работу которых можно проверить по отдельности, попутно проверяя все сообщения об ошибках
 

Natair

Новичок
Я новичек в этой теме, так что не совсем понимаю, что вы хотите от меня.
Переписывался сам php файл для того чтобы работать с другйо базой. Ошибок не выдавало.
Просто поясните как это переписать под Postgresql так как в Mysql все работает замечательно.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Я новичек в этой теме, так что не совсем понимаю, что вы хотите от меня.
Здравствуйте, пан Новичек. От Вас хотят ответов на вопросы. Если вопросы непонятны, то уточните что именно в них непонятно.
 

Natair

Новичок
Я в целом вообще хотел бы, чтобы подсказали как весь этот код передалать под Postgresql, так как у меня это не получается.
 

Natair

Новичок
Не обязательно использовать именно этот вариант. В целом требуется сделать возможность редактирования таблицы.
Нашел еще такой вариант:
$(function() {
$('td').click(function(e) {
//ловим элемент, по которому кликнули
var t = e.target || e.srcElement;
//получаем название тега
var elm_name = t.tagName.toLowerCase();
//если это инпут - ничего не делаем
if(elm_name == 'input') {return false;}
var val = $(this).html();
var code = '<input type="text" id="edit" value="'+val+'" />';
$(this).empty().append(code);
$('#edit').focus();
$('#edit').blur(function() {
var val = $(this).val();
$(this).parent().empty().html(val);
});
});
});

$(window).keydown(function(event){
//ловим событие нажатия клавиши
if(event.keyCode == 13) { //если это Enter
$('#edit').blur(); //снимаем фокус с поля ввода
}
});


Но ни как не могу сообразить, что надо написать, чтобы данные отправлялись на сервер.
 

Natair

Новичок
Нужно сделать редактируемую таблицу. Вот и ищу различные реализации.
 

Фанат

oncle terrible
Команда форума
и зачем для этого менять СУБД? почему нельзя оставить mysql?
 

Natair

Новичок
Не могли бы вы из этого кода для работы с mysql:
<?php
require_once('dbdata.php');

try {
//читаем параметры
$curPage = $_POST['page'];
$rowsPerPage = $_POST['rows'];
$sortingField = $_POST['sidx'];
$sortingOrder = $_POST['sord'];

//подключаемся к базе
$dbh = new PDO('mysql:host='.$dbHost.';dbname='.$dbName, $dbUser, $dbPass);
//указываем, мы хотим использовать utf8
$dbh->exec('SET CHARACTER SET utf8');

//определяем количество записей в таблице
$rows = $dbh->query('SELECT COUNT(id) AS count FROM users');
$totalRows = $rows->fetch(PDO::FETCH_ASSOC);

$firstRowIndex = $curPage * $rowsPerPage - $rowsPerPage;
//получаем список пользователей из базы
$res = $dbh->query('SELECT * FROM users ORDER BY '.$sortingField.' '.$sortingOrder.' LIMIT '.$firstRowIndex.', '.$rowsPerPage);

//сохраняем номер текущей страницы, общее количество страниц и общее количество записей
$response->page = $curPage;
$response->total = ceil($totalRows['count'] / $rowsPerPage);
$response->records = $totalRows['count'];

$i=0;
while($row = $res->fetch(PDO::FETCH_ASSOC)) {
$response->rows[$i]['id']=$row['id'];
$response->rows[$i]['cell']=array($row['id'], $row['surname'], $row['fname'], $row['lname']);
$i++;
}
echo json_encode($response);
}
catch (PDOException $e) {
echo 'Database error: '.$e->getMessage();
}

Сделать код для postgresql?
 

michelle

Новичок
Синтаксис Limit в простгресе работает по-другому.
Убери SET CHARACTER SET utf8 - нет в постгресе такого.

Все остальное - тебя уже наталкивали на правильные мысли.

З.Ы. Если в гугле незабанили - поищи отличия запросов mysql -> postgres
 

Vin-Diesel

Новичок
Не могли бы вы из этого кода для работы с mysql:
<?php
require_once('dbdata.php');

try {
//читаем параметры
$curPage = $_POST['page'];
$rowsPerPage = $_POST['rows'];
$sortingField = $_POST['sidx'];
$sortingOrder = $_POST['sord'];

//подключаемся к базе
$dbh = new PDO('mysql:host='.$dbHost.';dbname='.$dbName, $dbUser, $dbPass);
//указываем, мы хотим использовать utf8
$dbh->exec('SET CHARACTER SET utf8');

//определяем количество записей в таблице
$rows = $dbh->query('SELECT COUNT(id) AS count FROM users');
$totalRows = $rows->fetch(PDO::FETCH_ASSOC);

$firstRowIndex = $curPage * $rowsPerPage - $rowsPerPage;
//получаем список пользователей из базы
$res = $dbh->query('SELECT * FROM users ORDER BY '.$sortingField.' '.$sortingOrder.' LIMIT '.$firstRowIndex.', '.$rowsPerPage);

//сохраняем номер текущей страницы, общее количество страниц и общее количество записей
$response->page = $curPage;
$response->total = ceil($totalRows['count'] / $rowsPerPage);
$response->records = $totalRows['count'];

$i=0;
while($row = $res->fetch(PDO::FETCH_ASSOC)) {
$response->rows[$i]['id']=$row['id'];
$response->rows[$i]['cell']=array($row['id'], $row['surname'], $row['fname'], $row['lname']);
$i++;
}
echo json_encode($response);
}
catch (PDOException $e) {
echo 'Database error: '.$e->getMessage();
}

Сделать код для postgresql?
10$/час, обращайся:)
 
Сверху