{"id":70,"date":"2012-07-19T13:09:23","date_gmt":"2012-07-19T16:09:23","guid":{"rendered":"http:\/\/www.ctasoftware.com.br\/blog\/?p=70"},"modified":"2012-07-19T13:09:23","modified_gmt":"2012-07-19T16:09:23","slug":"evitar-sql-injection-usando-prepared-statements-no-php","status":"publish","type":"post","link":"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/","title":{"rendered":"Evitar SQL Injection usando Prepared Statements no PHP"},"content":{"rendered":"<p>Venho postando uma s\u00e9rie de informa\u00e7\u00f5es relacionados a PDO e esclarecimentos sobre o uso do Prepared Statements, consequentemente\u00a0reca\u00edmos\u00a0sobre a preven\u00e7\u00e3o de ataques de inje\u00e7\u00e3o SQL.<\/p>\n<p>Muitos s\u00e3o os programadores que n\u00e3o tomam qualquer preven\u00e7\u00e3o em suas aplica\u00e7\u00f5es ou sites para evitar ataques t\u00e3o usuais e f\u00e1ceis de se precaver, n\u00e3o se sabe se por pregui\u00e7a,\u00a0vicio\u00a0ou falta de conhecimento, mas s\u00e3o pr\u00e1ticas simples e que facilitam a vida do desenvolvedor, tanto em facilidade de desenvolvimento e leitura do c\u00f3digo quanto em seguran\u00e7a da informa\u00e7\u00e3o.<\/p>\n<p>Para sermos espec\u00edficos sobre o que seria um ataque de inje\u00e7\u00e3o SQL, experimente em uma aplica\u00e7\u00e3o que n\u00e3o utiliza o prepared statements a seguinte situa\u00e7\u00e3o:<\/p>\n<blockquote>\n<ol>\n<li>Crie uma tela de autentica\u00e7\u00e3o do usu\u00e1rio;<\/li>\n<li>No seu formul\u00e1rio insira a seguinte instru\u00e7\u00e3o\u00a0&#8216; OR 1&#8217;<\/li>\n<\/ol>\n<\/blockquote>\n<p>Observe que o valor recebido pelo servidor ser\u00e1\u00a0SELECT * FROM tabela WHERE username = &#8220;&#8221; OR 1, como a express\u00e3o OR 1, representar\u00e1 sempre uma verdade (TRUE), o valor retornado ser\u00e1 todos os usu\u00e1rios de seu banco de dados.<br \/>\nObserve uma segunda situa\u00e7\u00e3o onde a instru\u00e7\u00e3o informada for igual a\u00a0&#8216;; DELETE FROM tabela WHERE 1 OR username = &#8216; realize o teste e verifique o resultado. \u00c9 de imaginar que seria um grande delete em sua base de dados, correto?<\/p>\n<p>Pois bem, vemos na internet in\u00fameras formas de tentar evitar esses tipos de ataque utilizando express\u00f5es regulares, fun\u00e7\u00f5es enormes de valida\u00e7\u00e3o, dentre outras alternativas, mas n\u00e3o vemos muitas pessoas se referindo ao Prepared Statements como uma poderosa arma contra esse tipo de ataque.<\/p>\n<p><strong>Mas o que \u00e9 esse &#8220;Prepared Statements&#8221;?<\/strong><\/p>\n<p>S\u00e3o as conhecidas &#8220;consultas pr\u00e9-prontas&#8221;, a diferen\u00e7a dessas consultas \u00e9 que no lugar das vari\u00e1veis voc\u00ea ir\u00e1 inserir os placeholders, marcador de lugar, normalmente representado por &#8220;?&#8221;, dessa maneira estaremos informando ao MySQL onde estar\u00e3o cada informa\u00e7\u00e3o.<\/p>\n<p>Um exemplo b\u00e1sico de utiliza\u00e7\u00e3o do PDO:<\/p>\n<p>\/\/ o m\u00e9todo PDO::prepare() retorna um objeto da classe PDOStatement ou FALSE se ocorreu algum erro (neste caso use $pdo-&gt;errorInfo() para descobrir o que deu errado)<\/p>\n<p>$stmt = $pdo-&gt;prepare(&#8220;SELECT * FROM tabela WHERE username = ?&#8221;);<\/p>\n<p>\/\/ O m\u00e9todo PDOStatement::bindValue() aceita como par\u00e2metro a posi\u00e7\u00e3o da interroga\u00e7\u00e3o e o valor a ser inserido na mesma<\/p>\n<p>$stmt-&gt;bindValue(1, &#8216;ctasoftware&#8217;);<\/p>\n<p>\/\/ executamos o statement<br \/>\n$stmt-&gt;execute();<\/p>\n<p>\/\/ Com o m\u00e9todo que segue poderemos pegar todos os valores retornados, a partir dele implementaremos nossa l\u00f3gica para percorrer pegando todos os valores<br \/>\n$results = $stmt-&gt;fetchAll(PDO::FETCH_ASSOC);<\/p>\n<p>Em suma, \u00e9 poss\u00edvel evitar ataques, ter MAIOR PRODUTIVIDADE e seguran\u00e7a da informa\u00e7\u00e3o, al\u00e9m disso j\u00e1 est\u00e1 comprovado que statements s\u00e3o executados mais r\u00e1pidos que consultas normais.<\/p>\n<p>Vamos criando mais posts explorando essa quest\u00e3o.<\/p>\n<p>Vale a pesquisa no www.php.net sobre o assunto inclusive para abordar os m\u00e9todos dispon\u00edveis.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Venho postando uma s\u00e9rie de informa\u00e7\u00f5es relacionados a PDO e esclarecimentos sobre o uso do Prepared Statements, consequentemente\u00a0reca\u00edmos\u00a0sobre a preven\u00e7\u00e3o de ataques de inje\u00e7\u00e3o SQL. Muitos s\u00e3o os programadores que n\u00e3o tomam qualquer preven\u00e7\u00e3o em suas aplica\u00e7\u00f5es ou sites para evitar ataques t\u00e3o usuais e f\u00e1ceis de se precaver, n\u00e3o se sabe se por pregui\u00e7a,\u00a0vicio\u00a0ou [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[6,7],"tags":[18,41,43,20,19],"jetpack_publicize_connections":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Evitar SQL Injection usando Prepared Statements no PHP - CTASoftware Blog<\/title>\n<meta name=\"description\" content=\"CTASoftware Blog Evitar SQL Injection usando Prepared Statements no PHP\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Evitar SQL Injection usando Prepared Statements no PHP - CTASoftware Blog\" \/>\n<meta property=\"og:description\" content=\"CTASoftware Blog Evitar SQL Injection usando Prepared Statements no PHP\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/\" \/>\n<meta property=\"og:site_name\" content=\"CTASoftware Blog\" \/>\n<meta property=\"article:published_time\" content=\"2012-07-19T16:09:23+00:00\" \/>\n<meta name=\"author\" content=\"Everton Gon\u00e7alves\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Everton Gon\u00e7alves\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/\"},\"author\":{\"name\":\"Everton Gon\u00e7alves\",\"@id\":\"https:\/\/www.ctasoftware.com.br\/blog\/#\/schema\/person\/34f7fa2c76834d8410f6dd43e26fd3e4\"},\"headline\":\"Evitar SQL Injection usando Prepared Statements no PHP\",\"datePublished\":\"2012-07-19T16:09:23+00:00\",\"dateModified\":\"2012-07-19T16:09:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/\"},\"wordCount\":508,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.ctasoftware.com.br\/blog\/#organization\"},\"keywords\":[\"Gerador de C\u00f3digo PHP\",\"MySQL\",\"PHP\",\"Prepared Statements\",\"SQL Injection\"],\"articleSection\":[\"MySQL\",\"PHP\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/\",\"url\":\"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/\",\"name\":\"Evitar SQL Injection usando Prepared Statements no PHP - CTASoftware Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.ctasoftware.com.br\/blog\/#website\"},\"datePublished\":\"2012-07-19T16:09:23+00:00\",\"dateModified\":\"2012-07-19T16:09:23+00:00\",\"description\":\"CTASoftware Blog Evitar SQL Injection usando Prepared Statements no PHP\",\"breadcrumb\":{\"@id\":\"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/www.ctasoftware.com.br\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Evitar SQL Injection usando Prepared Statements no PHP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.ctasoftware.com.br\/blog\/#website\",\"url\":\"https:\/\/www.ctasoftware.com.br\/blog\/\",\"name\":\"CTASoftware Blog\",\"description\":\"Para Desenvolvedores De Software\",\"publisher\":{\"@id\":\"https:\/\/www.ctasoftware.com.br\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.ctasoftware.com.br\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.ctasoftware.com.br\/blog\/#organization\",\"name\":\"CTASoftware\",\"url\":\"https:\/\/www.ctasoftware.com.br\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.ctasoftware.com.br\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/i0.wp.com\/www.ctasoftware.com.br\/blog\/wp-content\/uploads\/2023\/06\/logocta.png?fit=225%2C44&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.ctasoftware.com.br\/blog\/wp-content\/uploads\/2023\/06\/logocta.png?fit=225%2C44&ssl=1\",\"width\":225,\"height\":44,\"caption\":\"CTASoftware\"},\"image\":{\"@id\":\"https:\/\/www.ctasoftware.com.br\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.ctasoftware.com.br\/blog\/#\/schema\/person\/34f7fa2c76834d8410f6dd43e26fd3e4\",\"name\":\"Everton Gon\u00e7alves\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.ctasoftware.com.br\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3e5e7fe964521f618a2b09d3fbb7800f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3e5e7fe964521f618a2b09d3fbb7800f?s=96&d=mm&r=g\",\"caption\":\"Everton Gon\u00e7alves\"},\"description\":\"http:\/\/www.ctasoftware.com.br\",\"sameAs\":[\"http:\/\/www.ctasoftware.com.br\"],\"url\":\"https:\/\/www.ctasoftware.com.br\/blog\/author\/everton-goncalves\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Evitar SQL Injection usando Prepared Statements no PHP - CTASoftware Blog","description":"CTASoftware Blog Evitar SQL Injection usando Prepared Statements no PHP","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/","og_locale":"pt_BR","og_type":"article","og_title":"Evitar SQL Injection usando Prepared Statements no PHP - CTASoftware Blog","og_description":"CTASoftware Blog Evitar SQL Injection usando Prepared Statements no PHP","og_url":"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/","og_site_name":"CTASoftware Blog","article_published_time":"2012-07-19T16:09:23+00:00","author":"Everton Gon\u00e7alves","twitter_misc":{"Escrito por":"Everton Gon\u00e7alves","Est. tempo de leitura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/#article","isPartOf":{"@id":"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/"},"author":{"name":"Everton Gon\u00e7alves","@id":"https:\/\/www.ctasoftware.com.br\/blog\/#\/schema\/person\/34f7fa2c76834d8410f6dd43e26fd3e4"},"headline":"Evitar SQL Injection usando Prepared Statements no PHP","datePublished":"2012-07-19T16:09:23+00:00","dateModified":"2012-07-19T16:09:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/"},"wordCount":508,"commentCount":0,"publisher":{"@id":"https:\/\/www.ctasoftware.com.br\/blog\/#organization"},"keywords":["Gerador de C\u00f3digo PHP","MySQL","PHP","Prepared Statements","SQL Injection"],"articleSection":["MySQL","PHP"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/","url":"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/","name":"Evitar SQL Injection usando Prepared Statements no PHP - CTASoftware Blog","isPartOf":{"@id":"https:\/\/www.ctasoftware.com.br\/blog\/#website"},"datePublished":"2012-07-19T16:09:23+00:00","dateModified":"2012-07-19T16:09:23+00:00","description":"CTASoftware Blog Evitar SQL Injection usando Prepared Statements no PHP","breadcrumb":{"@id":"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.ctasoftware.com.br\/blog\/evitar-sql-injection-usando-prepared-statements-no-php\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.ctasoftware.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Evitar SQL Injection usando Prepared Statements no PHP"}]},{"@type":"WebSite","@id":"https:\/\/www.ctasoftware.com.br\/blog\/#website","url":"https:\/\/www.ctasoftware.com.br\/blog\/","name":"CTASoftware Blog","description":"Para Desenvolvedores De Software","publisher":{"@id":"https:\/\/www.ctasoftware.com.br\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.ctasoftware.com.br\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.ctasoftware.com.br\/blog\/#organization","name":"CTASoftware","url":"https:\/\/www.ctasoftware.com.br\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.ctasoftware.com.br\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/www.ctasoftware.com.br\/blog\/wp-content\/uploads\/2023\/06\/logocta.png?fit=225%2C44&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.ctasoftware.com.br\/blog\/wp-content\/uploads\/2023\/06\/logocta.png?fit=225%2C44&ssl=1","width":225,"height":44,"caption":"CTASoftware"},"image":{"@id":"https:\/\/www.ctasoftware.com.br\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.ctasoftware.com.br\/blog\/#\/schema\/person\/34f7fa2c76834d8410f6dd43e26fd3e4","name":"Everton Gon\u00e7alves","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.ctasoftware.com.br\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3e5e7fe964521f618a2b09d3fbb7800f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3e5e7fe964521f618a2b09d3fbb7800f?s=96&d=mm&r=g","caption":"Everton Gon\u00e7alves"},"description":"http:\/\/www.ctasoftware.com.br","sameAs":["http:\/\/www.ctasoftware.com.br"],"url":"https:\/\/www.ctasoftware.com.br\/blog\/author\/everton-goncalves\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6ACmG-18","jetpack-related-posts":[{"id":62,"url":"https:\/\/www.ctasoftware.com.br\/blog\/gerador-de-codigo-php-crud\/","url_meta":{"origin":70,"position":0},"title":"Gerador de C\u00f3digo PHP &#8211; CRUD","author":"Everton Gon\u00e7alves","date":"13 de julho de 2012","format":false,"excerpt":"Com a evolu\u00e7\u00e3o da linguagem, o CTASoftware decidiu lan\u00e7ar um produto que de alguma forma ajude no desenvolvimento PHP. Com o conceito de Orienta\u00e7\u00e3o a Objetos decidimos criar o gerador de c\u00f3digo CRUD. O que ele ir\u00e1 gerar? BE ou VO - Value Object DAO - Data Access Object Como\u2026","rel":"","context":"Em &quot;PHP&quot;","block_context":{"text":"PHP","link":"https:\/\/www.ctasoftware.com.br\/blog\/category\/php\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":252,"url":"https:\/\/www.ctasoftware.com.br\/blog\/criar-tabela-com-base-em-select-mysql\/","url_meta":{"origin":70,"position":1},"title":"Criar tabela com base em Select MySQL","author":"Everton Gon\u00e7alves","date":"31 de maio de 2017","format":false,"excerpt":"Por vezes temos a necessidade de criar uma tabela \"f\u00edsica\" com base em um select, s\u00e3o diversos os motivos um deles \u00e9 a organiza\u00e7\u00e3o das tabelas do nosso banco. Para tal realize a a\u00e7\u00e3o abaixo [sql] CREATE TABLE nome-da-tabela SELECT * FROM tabela-atual [\/sql] Obs: lembre-se sempre que o \"*\u2026","rel":"","context":"Em &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/www.ctasoftware.com.br\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":207,"url":"https:\/\/www.ctasoftware.com.br\/blog\/duplicar-tabela-mysql\/","url_meta":{"origin":70,"position":2},"title":"Duplicar tabela MySQL","author":"Everton Gon\u00e7alves","date":"9 de dezembro de 2016","format":false,"excerpt":"Apenas um comando para duplicar uma tabela utilizando MySQL [sql] CREATE TABLE tbFuncionario_old SELECT * FROM tbFuncionario; [\/sql]","rel":"","context":"Em &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/www.ctasoftware.com.br\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":64,"url":"https:\/\/www.ctasoftware.com.br\/blog\/crud-em-php\/","url_meta":{"origin":70,"position":3},"title":"CRUD em PHP","author":"Everton Gon\u00e7alves","date":"14 de julho de 2012","format":false,"excerpt":"As vezes nos perguntamos, \"Porque utilizar o CRUD em PHP e como utilizar?\", nos deparamos com respostas as complexas demais ou muito simples. Mas porque n\u00e3o utilizar POO com PHP? Porque n\u00e3o utilizar um padr\u00e3o? Porque n\u00e3o seguir o manual php? At\u00e9 hoje n\u00e3o utilizei nenhum framework em PHP, zend,\u2026","rel":"","context":"Em &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/www.ctasoftware.com.br\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":136,"url":"https:\/\/www.ctasoftware.com.br\/blog\/listar-todas-base-de-dados-da-instancia-sql-server\/","url_meta":{"origin":70,"position":4},"title":"Listar Todas Base de Dados da inst\u00e2ncia SQL Server","author":"Everton Gon\u00e7alves","date":"22 de julho de 2014","format":false,"excerpt":"Para exibir uma lista de bancos de dados em uma inst\u00e2ncia do SQL Server Conecte-se a inst\u00e2ncia de Banco de Dados. Na barra Padr\u00e3o, clique em\u00a0Nova Consulta ou New Query. Copie e cole o exemplo a seguir na janela de consulta e clique em\u00a0Executar.\u00a0Este exemplo retorna uma lista dos bancos\u2026","rel":"","context":"Em &quot;SQL&quot;","block_context":{"text":"SQL","link":"https:\/\/www.ctasoftware.com.br\/blog\/category\/sql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":340,"url":"https:\/\/www.ctasoftware.com.br\/blog\/converter-data-em-php-com-apenas-uma-linha\/","url_meta":{"origin":70,"position":5},"title":"Converter Data em PHP com apenas uma linha","author":"Everton Gon\u00e7alves","date":"8 de dezembro de 2018","format":false,"excerpt":"Converter o formato de data do banco (funciona para o MySQL e outros bancos) para o formato brasileiro em php. Considerando que : mostrar\u00e1 09\/12\/2018 22:00:06. mostrar\u00e1 09\/12\/2018. Simples assim. \ud83d\ude42 Essa solu\u00e7\u00e3o funciona para datas no formato yyyy-mm-dd hh:mm:ss e yyyy-mm-dd. D\u00e1 para fazer tamb\u00e9m o inverso, alterando o\u2026","rel":"","context":"Em &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/www.ctasoftware.com.br\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.ctasoftware.com.br\/blog\/wp-json\/wp\/v2\/posts\/70"}],"collection":[{"href":"https:\/\/www.ctasoftware.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ctasoftware.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ctasoftware.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ctasoftware.com.br\/blog\/wp-json\/wp\/v2\/comments?post=70"}],"version-history":[{"count":1,"href":"https:\/\/www.ctasoftware.com.br\/blog\/wp-json\/wp\/v2\/posts\/70\/revisions"}],"predecessor-version":[{"id":71,"href":"https:\/\/www.ctasoftware.com.br\/blog\/wp-json\/wp\/v2\/posts\/70\/revisions\/71"}],"wp:attachment":[{"href":"https:\/\/www.ctasoftware.com.br\/blog\/wp-json\/wp\/v2\/media?parent=70"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ctasoftware.com.br\/blog\/wp-json\/wp\/v2\/categories?post=70"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ctasoftware.com.br\/blog\/wp-json\/wp\/v2\/tags?post=70"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}