Welcome! Log In Create A New Profile

Advanced

[PHP] Error with composer

Posted by Romero, Fernando 
Romero, Fernando
[PHP] Error with composer
March 23, 2018 12:40PM
I am using PDO + composer and I have an error with some .php and with others not that I have not been able to solve

Fatal error: Uncaught Error: Class 'PostgreSQL\PostgreSQLPHPInsert' not found in /var/www/postgresqlphpconnect/indexinsert.php:11 Stack trace: #0 {main} thrown in /var/www/postgresqlphpconnect/indexinsert.php on line 11

Next I show my .php:

<?php
require 'vendor/autoload.php';

use PostgreSQL\Connection as Connection;
use PostgreSQL\PostgreSQLPHPInsert as PostgreSQLPHPInsert;

try {
// connect to the PostgreSQL database
$pdo = Connection::get()->connect();
//
$insertDemo = new PostgreSQLPHPInsert($pdo);

// insert a stock into the stocks table
$id = $insertDemo->insertStock('MSFT', 'Microsoft Corporation');
echo 'The stock has been inserted with the id ' . $id . '<br>';

// insert a list of stocks into the stocks table
$list = $insertDemo->insertStockList([
['symbol' => 'GOOG', 'company' => 'Google Inc.'],
['symbol' => 'YHOO', 'company' => 'Yahoo! Inc.'],
['symbol' => 'FB', 'company' => 'Facebook, Inc.'],
]);

foreach ($list as $id) {
echo 'The stock has been inserted with the id ' . $id . '<br>';
}
} catch (\PDOException $e) {
echo $e->getMessage();
}

The class of the connection file that "Connection" works without problems (use PostgreSQL \ Connection as Connection;) but use PostgreSQL \ PostgreSQLPHPInsert as PostgreSQLPHPInsert; I get the error that I copied above
This is my autoload.php

<?php

// autoload.php @generated by Composer

require_once __DIR__ . '/composer/autoload_real.php';

return ComposerAutoloaderInit4a8bb4024109306e38c15d9bc0c30d94::getLoader();

This is my class that I do the insert

/**
* Return all rows in the stocks table
* @return array
*/
public function all() {
$stmt = $this->pdo->query('SELECT id, symbol, company '
. 'FROM stocks '
. 'ORDER BY symbol');
$stocks = [];
while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
$stocks[] = [
'id' => $row['id'],
'symbol' => $row['symbol'],
'company' => $row['company']
];
}
return $stocks;
}

I have other php with other classes that do not give me error and I do not see difference with this





--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Ashley Sheridan
Re: [PHP] Error with composer
March 23, 2018 01:40PM
On March 23, 2018 11:34:56 AM UTC, "Romero, Fernando" <[email protected]> wrote:
>I am using PDO + composer and I have an error with some .php and with
>others not that I have not been able to solve
>
>Fatal error: Uncaught Error: Class 'PostgreSQL\PostgreSQLPHPInsert' not
>found in /var/www/postgresqlphpconnect/indexinsert.php:11 Stack trace:
>#0 {main} thrown in /var/www/postgresqlphpconnect/indexinsert.php on
>line 11
>
>Next I show my .php:
>
><?php
>require 'vendor/autoload.php';
>
>use PostgreSQL\Connection as Connection;
>use PostgreSQL\PostgreSQLPHPInsert as PostgreSQLPHPInsert;
>
>try {
> // connect to the PostgreSQL database
> $pdo = Connection::get()->connect();
> //
> $insertDemo = new PostgreSQLPHPInsert($pdo);
>
> // insert a stock into the stocks table
> $id = $insertDemo->insertStock('MSFT', 'Microsoft Corporation');
> echo 'The stock has been inserted with the id ' . $id . '<br>';
>
> // insert a list of stocks into the stocks table
> $list = $insertDemo->insertStockList([
> ['symbol' => 'GOOG', 'company' => 'Google Inc.'],
> ['symbol' => 'YHOO', 'company' => 'Yahoo! Inc.'],
> ['symbol' => 'FB', 'company' => 'Facebook, Inc.'],
> ]);
>
> foreach ($list as $id) {
> echo 'The stock has been inserted with the id ' . $id . '<br>';
> }
>} catch (\PDOException $e) {
> echo $e->getMessage();
>}
>
>The class of the connection file that "Connection" works without
>problems (use PostgreSQL \ Connection as Connection;) but use
>PostgreSQL \ PostgreSQLPHPInsert as PostgreSQLPHPInsert; I get the
>error that I copied above
>This is my autoload.php
>
><?php
>
>// autoload.php @generated by Composer
>
>require_once __DIR__ . '/composer/autoload_real.php';
>
>return
>ComposerAutoloaderInit4a8bb4024109306e38c15d9bc0c30d94::getLoader();
>
>This is my class that I do the insert
>
>/**
> * Return all rows in the stocks table
> * @return array
> */
> public function all() {
> $stmt = $this->pdo->query('SELECT id, symbol, company '
> . 'FROM stocks '
> . 'ORDER BY symbol');
> $stocks = [];
> while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
> $stocks[] = [
> 'id' => $row['id'],
> 'symbol' => $row['symbol'],
> 'company' => $row['company']
> ];
> }
> return $stocks;
> }
>
>I have other php with other classes that do not give me error and I do
>not see difference with this
>
>
>
>
>
>--
>PHP General Mailing List (http://www.php.net/)
>To unsubscribe, visit: http://www.php.net/unsub.php

What does your composer.json look like? How did you install pdo in your project? Might need to run a `composer install` or `composer dump-autoload` to have composer fully refresh all namespaced classes that it knows about.

Thanks,
Ash

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Romero, Fernando
RE: [PHP] Error with composer
March 23, 2018 02:10PM
-----Mensaje original-----
De: Ashley Sheridan [mailto:[email protected]]
Enviado el: viernes, 23 de marzo de 2018 9:37 a. m.
Para: php-general@lists.php.net; Romero, Fernando <[email protected]>; php-general@lists.php.net
Asunto: Re: [PHP] Error with composer



On March 23, 2018 11:34:56 AM UTC, "Romero, Fernando" <[email protected]> wrote:
>I am using PDO + composer and I have an error with some .php and with
>others not that I have not been able to solve
>
>Fatal error: Uncaught Error: Class 'PostgreSQL\PostgreSQLPHPInsert' not
>found in /var/www/postgresqlphpconnect/indexinsert.php:11 Stack trace:
>#0 {main} thrown in /var/www/postgresqlphpconnect/indexinsert.php on
>line 11
>
>Next I show my .php:
>
><?php
>require 'vendor/autoload.php';
>
>use PostgreSQL\Connection as Connection;
> use PostgreSQL\PostgreSQLPHPInsert as PostgreSQLPHPInsert;

>try {
> // connect to the PostgreSQL database
> $pdo = Connection::get()->connect();
> //
> $insertDemo = new PostgreSQLPHPInsert($pdo);
>
> // insert a stock into the stocks table
> $id = $insertDemo->insertStock('MSFT', 'Microsoft Corporation');
> echo 'The stock has been inserted with the id ' . $id . '<br>';
>
> // insert a list of stocks into the stocks table
> $list = $insertDemo->insertStockList([
> ['symbol' => 'GOOG', 'company' => 'Google Inc.'],
> ['symbol' => 'YHOO', 'company' => 'Yahoo! Inc.'],
> ['symbol' => 'FB', 'company' => 'Facebook, Inc.'],
> ]);
>
> foreach ($list as $id) {
> echo 'The stock has been inserted with the id ' . $id . '<br>';
> }
>} catch (\PDOException $e) {
> echo $e->getMessage();
>}
>
>The class of the connection file that "Connection" works without
>problems (use PostgreSQL \ Connection as Connection;) but use
>PostgreSQL \ PostgreSQLPHPInsert as PostgreSQLPHPInsert; I get the
>error that I copied above This is my autoload.php
>
><?php
>
>// autoload.php @generated by Composer
>
>require_once __DIR__ . '/composer/autoload_real.php';
>
>return
>ComposerAutoloaderInit4a8bb4024109306e38c15d9bc0c30d94::getLoader();
>
>This is my class that I do the insert
>
>/**
> * Return all rows in the stocks table
> * @return array
> */
> public function all() {
> $stmt = $this->pdo->query('SELECT id, symbol, company '
> . 'FROM stocks '
> . 'ORDER BY symbol');
> $stocks = [];
> while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
> $stocks[] = [
> 'id' => $row['id'],
> 'symbol' => $row['symbol'],
> 'company' => $row['company']
> ];
> }
> return $stocks;
> }
>
>I have other php with other classes that do not give me error and I do
>not see difference with this
>
>
>
>
>
>--
>PHP General Mailing List (http://www.php.net/) To unsubscribe, visit:
>http://www.php.net/unsub.php

What does your composer.json look like? How did you install pdo in your project? Might need to run a `composer install` or `composer dump-autoload` to have composer fully refresh all namespaced classes that it knows about.

Thanks,
Ash

This is my composer.json

{
"autoload": {
"psr-4": {
"PostgreSQL\\": "app/"
}
}
}

Yes, I installed the composer and when I started the project I ran "composer update" and then in each class that I built I run "composer dump-autoupload"

Thanks
Sorry, only registered users may post in this forum.

Click here to login