Вставка новых строк в БД с использованием php и СУБД это postgresql? - PullRequest
0 голосов
/ 10 марта 2012

Я искал этот «базовый» (я новичок в postgresql, но немного знакомый с MySQL) вопрос в Интернете, но есть только несколько ссылок, когда речь идет о postgresql и php, поэтому я обратился к stackoverflow. : D

Я последовал примеру на сайте yii http://www.yiiframework.com/doc/guide/1.1/en/database.dao, но продолжаю получать ошибки. Вот мой код:

    $barya = 'INSERT INTO "BILL" (Assessed_Value,Total_Assessed_Value,Penalty_Percentage,Basic_Tax,SEF_Tax,Discount) VALUES (:Assessed_Value,:Total_Assessed_Value,:Penalty_Percentage,:Basic_Tax,:SEF_Tax,:Discount)';
$command = $connection->createCommand($barya);
        $command = $connection->createCommand($barya);
        $command = bindParam(":Assessed_Value", $compute, PDO::PARAM_STR);
        $command =bindParam(":Total_Assessed_Value", $compute, PDO::PARAM_STR);
        $command =bindValue(":Penalty_Percentage", 0.20, PDO::PARAM_STR);
        $command =bindValue(":Basic_Tax", 0.15, PDO::PARAM_STR);
        $command =bindValue(":SEF_Tax", 0.20, PDO::PARAM_STR);
        $command =bindValue(":Discount", 0.03, PDO::PARAM_STR);
        $command->execute();

Моя ошибка - ошибка сервера: 500. Это правильный способ вставки новых строк в postgre?

[РЕДАКТИРОВАТЬ, РЕДАКТИРОВАТЬ]

Я обнаружил, что мой синтаксис был неправильным (после случайной замены «с» и некоторых стрелок).

Это выглядит как:

$barya = 'INSERT INTO "BILL" ("Assessed_Value","Total_Assessed_Value","Penalty_Percentage","Basic_Tax","SEF_Tax","Discount") VALUES(:Assessed_Value,:Total_Assessed_Value,:Penalty_Percentage,:Basic_Tax,:SEF_Tax,:Discount)';
    $command = $connection->createCommand($barya);
    $command->bindParam(":Assessed_Value", $compute, PDO::PARAM_STR);
    $command->bindParam(":Total_Assessed_Value", $compute, PDO::PARAM_STR);
    $command->bindParam(":Penalty_Percentage", $compute, PDO::PARAM_STR);
    $command->bindParam(":Basic_Tax", $compute, PDO::PARAM_STR);
    $command->bindParam(":SEF_Tax", $compute, PDO::PARAM_STR);
    $command->bindParam(":Discount", $compute, PDO::PARAM_STR);
$command->execute();

но сейчас у меня проблемы с внешними ключами. Т.Т. Кто-нибудь знает, как? Благодарю. : D * * 1017

1 Ответ

1 голос
/ 10 марта 2012

Намного проще будет использовать PDO с подготовленным оператором:

$barya = 'INSERT INTO BILL (Assessed_Value,Total_Assessed_Value,Penalty_Percentage,Basic_Tax,SEF_Tax,Discount) VALUES(:Assessed_Value,:Total_Assessed_Value,:Penalty_Percentage,:Basic_Tax,:SEF_Tax,:Discount)';
$command = $connection->prepare($barya);

// new data
$Assessed_Value = ' ... ';
$Total_Assessed_Value= ' ... ';
$Penalty_Percentage= ' ... ';
$Basic_Tax= ' ... ';
$SEF_Tax= ' ... ';
$Discount = ' ... ';

$command->execute(array(
  ':Assessed_Value'=>$Assessed_Value,
  ':Total_Assessed_Value'=>$Total_Assessed_Value,
  ':Penalty_Percentage'=>$Penalty_Percentage,
  ':Basic_Tax'=>$Basic_Tax,
  ':SEF_Tax'=>$SEF_Tax,
  ':Discount'=>$Discount,));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...