Делаю Cms и в классе 'Connection' подключаю PDO и там ошибка: "Не видит методы такие как (prepare, execute, fetchAll)". Может что-то упустил, не знаю. Если сможете помочь буду рад. Спасибо)) - вопрос №2531161

<span style="color: #000080; background-color: #f7faff; font-weight: bold;"><br /></span><span style="color: #000080; background-color: #f7faff; font-weight: bold;">namespace </span><span style="background-color: #f7faff;">Engine\Core\Database;<br /></span><span style="color: #000080; background-color: #f7faff; font-weight: bold;">use </span><span style="background-color: #f7faff;">\PDO;<br /></span><span style="color: #000080; background-color: #f7faff; font-weight: bold;">class </span><span style="background-color: #f7faff;">Connection<br /></span><span style="background-color: #f7faff;">{<br /></span><span style="background-color: #f7faff;"><br /></span><span style="color: #000080; background-color: #f7faff; font-weight: bold;">private </span><span style="color: #660e7a; background-color: #f7faff; font-weight: bold;">$link</span><span style="background-color: #f7faff;">;<br /></span><span style="color: #808080; background-color: #f7faff; font-style: italic;">/**<br /></span><span style="color: #808080; background-color: #f7faff; font-style: italic;"> * Database constructor.<br /></span><span style="color: #808080; background-color: #f7faff; font-style: italic;"> */<br /></span><span style="color: #000080; background-color: #f7faff; font-weight: bold;">public function </span><span style="background-color: #f7faff;">__construct()<br /></span><span style="background-color: #f7faff;"> {<br /></span><span style="color: #660000; background-color: #f7faff;">$this</span><span style="background-color: #f7faff;">->connect();<br /></span><span style="background-color: #f7faff;"> }<br /></span><span style="background-color: #f7faff;"><br /></span><span style="color: #808080; background-color: #f7faff; font-style: italic;">/**<br /></span><span style="color: #808080; background-color: #f7faff; font-style: italic;"> *<br /></span><span style="color: #808080; background-color: #f7faff; font-style: italic;"> */<br /></span><span style="color: #000080; background-color: #f7faff; font-weight: bold;">private function </span><span style="background-color: #f7faff;">connect()<br /></span><span style="background-color: #f7faff;"> {<br /></span><span style="color: #660000; background-color: #f7faff;">$config </span><span style="background-color: #f7faff;">= [<br /></span><span style="color: #008000; background-color: #f7faff; font-weight: bold;">'host' </span><span style="background-color: #f7faff;">=></span><span style="color: #008000; background-color: #f7faff; font-weight: bold;">'localhost'</span><span style="background-color: #f7faff;">,<br /></span><span style="color: #008000; background-color: #f7faff; font-weight: bold;">'db_name' </span><span style="background-color: #f7faff;">=> </span><span style="color: #008000; background-color: #f7faff; font-weight: bold;">'laravelDB'</span><span style="background-color: #f7faff;">,<br /></span><span style="color: #008000; background-color: #f7faff; font-weight: bold;">'username' </span><span style="background-color: #f7faff;">=> </span><span style="color: #008000; background-color: #f7faff; font-weight: bold;">'root'</span><span style="background-color: #f7faff;">,<br /></span><span style="color: #008000; background-color: #f7faff; font-weight: bold;">'password' </span><span style="background-color: #f7faff;">=> </span><span style="color: #008000; background-color: #f7faff; font-weight: bold;">''</span><span style="background-color: #f7faff;">,<br /></span><span style="color: #008000; background-color: #f7faff; font-weight: bold;">'charset' </span><span style="background-color: #f7faff;">=> </span><span style="color: #008000; background-color: #f7faff; font-weight: bold;">'utf8'<br /></span><span style="background-color: #f7faff;">];<br /></span><span style="background-color: #f7faff;"><br /></span><span style="color: #660000; background-color: #f7faff;">$dsn </span><span style="background-color: #f7faff;">= </span><span style="color: #008000; background-color: #f7faff; font-weight: bold;">'mysql:host=' </span><span style="background-color: #f7faff;">.</span><span style="color: #660000; background-color: #f7faff;">$config</span><span style="background-color: #f7faff;">[</span><span style="color: #008000; background-color: #f7faff; font-weight: bold;">'host'</span><span style="background-color: #f7faff;">].</span><span style="color: #008000; background-color: #f7faff; font-weight: bold;">';dbname='</span><span style="background-color: #f7faff;">.</span><span style="color: #660000; background-color: #f7faff;">$config</span><span style="background-color: #f7faff;">[</span><span style="color: #008000; background-color: #f7faff; font-weight: bold;">'db_name'</span><span style="background-color: #f7faff;">].</span><span style="color: #008000; background-color: #f7faff; font-weight: bold;">';charset='</span><span style="background-color: #f7faff;">.</span><span style="color: #660000; background-color: #f7faff;">$config</span><span style="background-color: #f7faff;">[</span><span style="color: #008000; background-color: #f7faff; font-weight: bold;">'charset'</span><span style="background-color: #f7faff;">];<br /></span><span style="background-color: #f7faff;"><br /></span><span style="color: #660000; background-color: #f7faff;">$this</span><span style="background-color: #f7faff;">-></span><span style="color: #660e7a; background-color: #f7faff; font-weight: bold;">link </span><span style="background-color: #f7faff;">= </span><span style="color: #000080; background-color: #f7faff; font-weight: bold;">new </span><span style="background-color: #f7faff;">PDO(</span><span style="color: #660000; background-color: #f7faff;">$dsn</span><span style="background-color: #f7faff;">, </span><span style="color: #660000; background-color: #f7faff;">$config</span><span style="background-color: #f7faff;">[</span><span style="color: #008000; background-color: #f7faff; font-weight: bold;">'username'</span><span style="background-color: #f7faff;">],</span><span style="color: #660000; background-color: #f7faff;">$config</span><span style="background-color: #f7faff;">[</span><span style="color: #008000; background-color: #f7faff; font-weight: bold;">'password'</span><span style="background-color: #f7faff;">]);<br /></span><span style="background-color: #f7faff;"> }<br /></span><span style="background-color: #f7faff;"><br /></span><span style="color: #808080; background-color: #f7faff; font-style: italic;">/**<br /></span><span style="color: #808080; background-color: #f7faff; font-style: italic;"> * </span><span style="color: #808080; background-color: #f7faff; font-weight: bold; font-style: italic;">@param </span><span style="color: #808080; background-color: #f7faff; font-style: italic;">$sql<br /></span><span style="color: #808080; background-color: #f7faff; font-style: italic;"> * </span><span style="color: #808080; background-color: #f7faff; font-weight: bold; font-style: italic;">@return </span><span style="color: #808080; background-color: #f7faff; font-style: italic;">mixed<br /></span><span style="color: #808080; background-color: #f7faff; font-style: italic;"> */<br /></span><span style="color: #000080; background-color: #f7faff; font-weight: bold;">public function </span><span style="background-color: #f7faff;">execute(</span><span style="color: #660000; background-color: #f7faff;">$sql</span><span style="background-color: #f7faff;">)<br /></span><span style="background-color: #f7faff;"> {<br /></span><span style="color: #660000; background-color: #f7faff;">$sth </span><span style="background-color: #f7faff;">= </span><span style="color: #660000; background-color: #f7faff;">$this</span><span style="background-color: #f7faff;">-></span><span style="color: #660e7a; background-color: #f7faff; font-weight: bold;">link</span><span style="background-color: #f7faff;">->prepare(</span><span style="color: #660000; background-color: #f7faff;">$sql</span><span style="background-color: #f7faff;">);<br /></span><span style="color: #000080; background-color: #f7faff; font-weight: bold;">return </span><span style="color: #660000; background-color: #f7faff;">$sth</span><span style="background-color: #f7faff;">->execute();<br /></span><span style="background-color: #f7faff;"> }<br /></span><span style="background-color: #f7faff;"><br /></span><span style="color: #808080; background-color: #f7faff; font-style: italic;">/**<br /></span><span style="color: #808080; background-color: #f7faff; font-style: italic;"> * </span><span style="color: #808080; background-color: #f7faff; font-weight: bold; font-style: italic;">@param </span><span style="color: #808080; background-color: #f7faff; font-style: italic;">$sql<br /></span><span style="color: #808080; background-color: #f7faff; font-style: italic;"> * </span><span style="color: #808080; background-color: #f7faff; font-weight: bold; font-style: italic;">@return </span><span style="color: #808080; background-color: #f7faff; font-style: italic;">array<br /></span><span style="color: #808080; background-color: #f7faff; font-style: italic;"> */<br /></span><span style="color: #000080; background-color: #f7faff; font-weight: bold;">public function </span><span style="background-color: #f7faff;">query(</span><span style="color: #660000; background-color: #f7faff;">$sql</span><span style="background-color: #f7faff;">)<br /></span><span style="background-color: #f7faff;"> {<br /></span><span style="color: #660000; background-color: #f7faff;">$sth </span><span style="background-color: #f7faff;">= </span><span style="color: #660000; background-color: #f7faff;">$this</span><span style="background-color: #f7faff;">-></span><span style="color: #660e7a; background-color: #f7faff; font-weight: bold;">link</span><span style="background-color: #f7faff;">->prepare(</span><span style="color: #660000; background-color: #f7faff;">$sql</span><span style="background-color: #f7faff;">);<br /></span><span style="color: #660000; background-color: #f7faff;">$sth</span><span style="background-color: #f7faff;">->execute();<br /></span><span style="color: #660000; background-color: #f7faff;">$result </span><span style="background-color: #f7faff;">= </span><span style="color: #660000; background-color: #f7faff;">$sth</span><span style="background-color: #f7faff;">->fetchAll(PDO::</span><span style="color: #660e7a; background-color: #f7faff; font-weight: bold; font-style: italic;">FETCH_ASSOC</span><span style="background-color: #f7faff;">);<br /></span><span style="color: #000080; background-color: #f7faff; font-weight: bold;">if</span><span style="background-color: #f7faff;">(</span><span style="color: #660000; background-color: #f7faff;">$result </span><span style="background-color: #f7faff;">===</span><span style="color: #000080; background-color: #f7faff; font-weight: bold;">false</span><span style="background-color: #f7faff;">){<br /></span><span style="color: #000080; background-color: #f7faff; font-weight: bold;">return</span><span style="background-color: #f7faff;">[];<br /></span><span style="background-color: #f7faff;"> }<br /></span><span style="color: #000080; background-color: #f7faff; font-weight: bold;">return </span><span style="color: #660000; background-color: #f7faff;">$result</span><span style="background-color: #f7faff;">;<br /></span><span style="background-color: #f7faff;"><br /></span><span style="background-color: #f7faff;"> }<br /></span><span style="background-color: #f7faff;"><br /></span><span style="background-color: #f7faff;">}</span>
21.07.17
2 ответа

Ответы

То, что вы скинули, является исходным кодом страницы. А методы, наследования и т.д являются серверной частью языка php
21.07.17
Сам класс рабочий, с оговорками. Проверьте правильно ли используете пространства имен и инициализируете ли объект класса, потому что статических методов в нем нет.
22.07.17

Дима

Читать ответы
Посмотреть всех экспертов из раздела Технологии > PHP
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store