Witam mam problem z PDO i prosił bym kogoś kto bawi sie tą biblioteką, mianowicie nie jestem pewnie co do możliwości PDO i z góry mówię że w "google" mam problem na odnalezienie odpowiedzi. Mianowicie tworze test baz danych i nie wiem do końca czy PDO obsługuje moje zapytania jeśli używam składni języka MySQL. Przypuszczam że PDO działa na zapytaniach typu SELECT, INSERT i UPDATE ale mi zależy konkretnie na CREATE. Za pomocą PDO chcę stworzyć tabele w już istniejącej bazie danych, mam stworzoną kod tworzący tabele w mysql no i po użyciu takiego zapytania baza powstaje i nie mam problem ale jeśli już stworze to samo zapytanie tylko dla oracla,pgsql,db2 to niestety wyskakują błędy, głównie że składnia jest nieprawidłowa. PDO ma konwertować zapytania pod inne silniki no ale niestety jeśli chodzi od CREATE jest problem. Mój kod na przykładzie oracla wygląda tak:
<?php
try
{
$pdo = new PDO("oci:dbname=localhost/orcl;charset=UTF8", "system", "Admin123");
$pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo 'Połączenie z Oracle nie mogło zostać utworzone: ' . $e->getMessage(); }
try
{
$sql = "CREATE TABLE example (
id int(11) NOT NULL,
data VARCHAR(100)
)";
$sq = $pdo->query($sql);
$time = $time_end - $time_start;
}
catch(PDOException $e)
{
echo 'Nie można wykonać zapytania: ' . $e->getMessage(); }
if ($sq) {
echo 'Tabela stworzona w czasie:'; }
$time = 0;
$pdo = null;
?>
I juz mu sie nie podoba w linii "id int(11) NOT NULL" gdzie MySQL łyknął to bez problemu (nie dziwi mnie to skoro zapytanie w składni MySQL) ale jak zmodyfikuje kod i zostawię samo "int" to tworzy tabele.
Oczywiście mogł bym stworzyć identyczne tabele dla każdego silnika ale jaki jest wtedy sens używania PDO?
Może wiecie jak ugryźć temat? Czy robie coś źle? Proszę o pomoc