¿Es esta siguiente separación de preocupaciones y estándares PHP OOP? -- php campo con object-oriented campo con pdo camp codereview Relacionados El problema

Is this following Separation of Concerns and PHP OOP standards?


2
vote

problema

Español

He estado trabajando con PHP por un tiempo ahora, pero, lamentablemente, no he profundizado en el lado de OO hasta hace poco. He estado leyendo en Separación de preocupaciones y las mejores prácticas de la OOP, y creo que tengo un Idea de lo que se espera, pero siempre hay espacio para mejorar. En cualquier caso, ¿está encabezando en la dirección correcta para PHP OOP?

la clase (perfil.php)

  <?php $dbHost = "example.com"; $dbName = "exampleDB"; $user = "WouldntYou";  $password = "LikeToKnow";  //Get and parse the faculty name from the url if(isset($_GET['facultyName'])) {   $facultyName = explode("-", $_GET['facultyName']);   $getFirstName = ucfirst($facultyName[1]);   $getLastName = ucfirst($facultyName[0]); } else {   $getFirstName = "";   $getLastName = ""; }  class Employee {   private $employeeId;   private $firstName;   private $middleName;   private $lastName;   private $suffix;   private $eMail;   private $phoneNumber;   private $faxNumber;   private $streetAddress;   private $city;   private $state;   private $zipCode;   private $profileWebsite;   private $profilePhoto;   private $jobName;   private $departmentName;   private $departmentURL;    /**    * @desc combines first, middle, and last name along with suffix    * @param - n/a    * @return string - formatted name and title    */     public function display_name() {     $fullName = $this->firstName;     $fullName .= ($this->middleName!="") ? " " . $this->middleName . " " : " ";     $fullName .= $this->lastName;     $fullName .= ($this->suffix!="") ? ", " . $suffix : "";     return $fullName;   }    /**    * @desc wraps email in anchor tag    * @param - n/a    * @return string - link to email   */     public function display_email() {     return "<a href='mailto:". $this->eMail . "'>". $this->eMail ."</a>";   }    /**    * @desc splits phone number, adds hyphens and parenthesis    * @param - n/a    * @return string - formatted phone number    */     public function display_phone() {     return "(" . substr($this->phoneNumber, 0, 3) . ") " . substr($this->phoneNumber, 3, 3) . "-" . substr($this->phoneNumber, 6, 4);   }    /**    * @desc splits fax number, adds hyphens and parenthesis    * @param - n/a    * @return string - formatted fax number    */     public function display_fax() {     return "(" . substr($this->faxNumber, 0, 3) . ") " . substr($this->faxNumber, 3, 3) . "-" . substr($this->faxNumber, 6, 4);   }    /**    * @desc wraps profilePhoto in image tag, using the display_name as alt text    * @param - n/a    * @return string - image tag    */     public function display_photo() {     return "<img alt='". $this->display_name() . "' src='/profileImages/". $this->profilePhoto . "' class='profilePhoto'>";   }    /**    * @desc wraps profileWebsite in anchor tag    * @param - n/a    * @return string - link to profileWebsite   */     public function display_website() {     return "<a href='". $this->profileWebsite . "' target='_blank'>". $this->profileWebsite ."</a>";   }    /**    * @desc displays the complete address, wrapped in a p tag    * @param - n/a    * @return string - streetAddress, city, state, and zip code wrapped in p tag   */     public function display_address() {     return "<p>".$this->streetAddress."<br>".$this->city.", ".$this->state." ".$this->zipCode."</p>";   }    /**    * @desc Splits the jobTitle into an array, with "----" as delimiter    * @param - n/a    * @return array - each index contains a job title   */     public function display_jobs() {     return explode("----", $this->jobName);   }    /**    * @desc Splits the departmentName and departmentURL and creates a link, with "----" as delimiter    * @param - n/a    * @return array - each index contains a formed link with departmentName and departmentURL   */     public function display_departments() {     $deptName = explode("----", $this->departmentName);     $deptURL = explode("----", $this->departmentURL);     $deptLink = array();      $count = 0;     foreach($deptName as $name) {         $deptLink[] = "<a href='$deptURL[$count]'>$name</a>";         $count++;     }     return $deptLink;   } }  try { $pdo = new PDO("mysql:host=$dbHost;dbname=$dbName", $user, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  $stmt = $pdo->prepare('SELECT employeeId, firstName, middleName, lastName, suffix, eMail, phoneNumber, faxNumber, streetAddress, city, state, zipCode, profileWebsite, profilePhoto, GROUP_CONCAT(DISTINCT jobName ORDER BY jobTitleId SEPARATOR "----") AS jobName, GROUP_CONCAT(DISTINCT departmentName ORDER BY departmentId SEPARATOR "----") AS departmentName, GROUP_CONCAT(DISTINCT departmentURL ORDER BY departmentId SEPARATOR "----") AS departmentURL                        FROM employee                         INNER JOIN employee_has_jobTitle ON employeeId = employee_has_jobTitle.employee_employeeId                         INNER JOIN jobTitle ON employee_has_jobTitle.jobTitle_jobTitleId = jobTitleId                         INNER JOIN employee_has_department ON employee.employeeId = employee_has_department.employee_employeeId                        INNER JOIN department ON employee_has_department.department_departmentId = departmentId                        WHERE firstName = :firstName AND lastName = :lastName AND employeeId <> 9'); /* <> 9?!?  Yeah, I don't want people to be able to view my profile :) */ $stmt->setFetchMode(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE, 'Employee'); $stmt->execute(array('firstName'=>$getFirstName,'lastName'=>$getLastName));  $employee = $stmt->fetch(); } catch(PDOException $e) {   echo "Oops! " . $e->getMessage(); }  ?>   

WOW, eso es una clase enorme. Al menos me parece así, pero no soy profesional. ¿Eso es demasiado largo? ¿Cómo se debe dividir si es así? ¿Eres esto haciendo todo un montón de código de procedimiento, envolviéndolo en una clase y la consiste en la OOP, o estoy en el camino correcto? Solo algunas de mis preocupaciones allí.

la página de visualización

  <?php include 'includes/phpScripts/profile.php';  $title = "--- Profile: " . $employee->display_name(); $description = "--- Profile: " . $employee->display_name();  include 'includes/headerFooters/mainHeader.php';  ?>  <div id="columnContainer">   <div id='centerColumn'>     <h1><?=$employee->display_name();?></h1>      <?=$employee->display_photo();?>      <div class='contactContainer'>       <?php         foreach($employee->display_departments() as $dept) {           echo "<h3>$dept</h3>";         }       ?>        <p>         <?php            $firstJob = true;           foreach($employee->display_jobs() as $job) {             if($firstJob) {               $firstJob = false;             }             else {               echo ", ";             }             echo $job;            }         ?>       </p>        <p>         <strong>Phone: </strong><?=$employee->display_phone();?><br>         <strong>Fax: </strong><?=$employee->display_fax();?><br>         <strong>E-mail: </strong><br><?=$employee->display_email();?>       </p>        <p><?=$employee->display_address();?></p>        <div class='clearfix'></div>     </div>   </div>    ... </div>  <?php include('includes/headerFooters/mainFooter.php'); ?>   

He creado este diseño mientras yo seguía siendo un estudiante, y miro el código ahora y me estremezco. Recientemente he estado leyendo sobre oocsss y no usando id para el estilo , pero con cientos de páginas involucradas, no podemos invertir el tiempo para un (mucho necesario) el rediseño todavía. Sin embargo, ¿estoy separando el PHP lo suficiente aquí, o si se deben hacer más cosas dentro de los métodos de clase (los bucles, agregando la coma, etc.)?

Mis disculpas por el código extremadamente largo, espero un poco de TL; DR. Sin embargo, ¿estoy en el camino correcto para OOP, o necesito golpear los libros, y Google, un poco más?

Una vez que recibo algunos buenos hábitos, me bucearé en Laravel 4. Déjeme saber si estoy listo para ello, ¡y gracias de antemano por cualquier consejo!

Original en ingles

I've been working with PHP for a while now, but unfortunately haven't delved into the OO side of it until recently. I've been reading up on separation of concerns and OOP best practices, and I think I have an idea of what is expected, but there's always room to improve. At any rate, is this heading in the right direction for PHP OOP?

The Class (profile.php)

<?php $dbHost = "example.com"; $dbName = "exampleDB"; $user = "WouldntYou";  $password = "LikeToKnow";  //Get and parse the faculty name from the url if(isset($_GET['facultyName'])) {   $facultyName = explode("-", $_GET['facultyName']);   $getFirstName = ucfirst($facultyName[1]);   $getLastName = ucfirst($facultyName[0]); } else {   $getFirstName = "";   $getLastName = ""; }  class Employee {   private $employeeId;   private $firstName;   private $middleName;   private $lastName;   private $suffix;   private $eMail;   private $phoneNumber;   private $faxNumber;   private $streetAddress;   private $city;   private $state;   private $zipCode;   private $profileWebsite;   private $profilePhoto;   private $jobName;   private $departmentName;   private $departmentURL;    /**    * @desc combines first, middle, and last name along with suffix    * @param - n/a    * @return string - formatted name and title    */     public function display_name() {     $fullName = $this->firstName;     $fullName .= ($this->middleName!="") ? " " . $this->middleName . " " : " ";     $fullName .= $this->lastName;     $fullName .= ($this->suffix!="") ? ", " . $suffix : "";     return $fullName;   }    /**    * @desc wraps email in anchor tag    * @param - n/a    * @return string - link to email   */     public function display_email() {     return "<a href='mailto:". $this->eMail . "'>". $this->eMail ."</a>";   }    /**    * @desc splits phone number, adds hyphens and parenthesis    * @param - n/a    * @return string - formatted phone number    */     public function display_phone() {     return "(" . substr($this->phoneNumber, 0, 3) . ") " . substr($this->phoneNumber, 3, 3) . "-" . substr($this->phoneNumber, 6, 4);   }    /**    * @desc splits fax number, adds hyphens and parenthesis    * @param - n/a    * @return string - formatted fax number    */     public function display_fax() {     return "(" . substr($this->faxNumber, 0, 3) . ") " . substr($this->faxNumber, 3, 3) . "-" . substr($this->faxNumber, 6, 4);   }    /**    * @desc wraps profilePhoto in image tag, using the display_name as alt text    * @param - n/a    * @return string - image tag    */     public function display_photo() {     return "<img alt='". $this->display_name() . "' src='/profileImages/". $this->profilePhoto . "' class='profilePhoto'>";   }    /**    * @desc wraps profileWebsite in anchor tag    * @param - n/a    * @return string - link to profileWebsite   */     public function display_website() {     return "<a href='". $this->profileWebsite . "' target='_blank'>". $this->profileWebsite ."</a>";   }    /**    * @desc displays the complete address, wrapped in a p tag    * @param - n/a    * @return string - streetAddress, city, state, and zip code wrapped in p tag   */     public function display_address() {     return "<p>".$this->streetAddress."<br>".$this->city.", ".$this->state." ".$this->zipCode."</p>";   }    /**    * @desc Splits the jobTitle into an array, with "----" as delimiter    * @param - n/a    * @return array - each index contains a job title   */     public function display_jobs() {     return explode("----", $this->jobName);   }    /**    * @desc Splits the departmentName and departmentURL and creates a link, with "----" as delimiter    * @param - n/a    * @return array - each index contains a formed link with departmentName and departmentURL   */     public function display_departments() {     $deptName = explode("----", $this->departmentName);     $deptURL = explode("----", $this->departmentURL);     $deptLink = array();      $count = 0;     foreach($deptName as $name) {         $deptLink[] = "<a href='$deptURL[$count]'>$name</a>";         $count++;     }     return $deptLink;   } }  try { $pdo = new PDO("mysql:host=$dbHost;dbname=$dbName", $user, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  $stmt = $pdo->prepare('SELECT employeeId, firstName, middleName, lastName, suffix, eMail, phoneNumber, faxNumber, streetAddress, city, state, zipCode, profileWebsite, profilePhoto, GROUP_CONCAT(DISTINCT jobName ORDER BY jobTitleId SEPARATOR "----") AS jobName, GROUP_CONCAT(DISTINCT departmentName ORDER BY departmentId SEPARATOR "----") AS departmentName, GROUP_CONCAT(DISTINCT departmentURL ORDER BY departmentId SEPARATOR "----") AS departmentURL                        FROM employee                         INNER JOIN employee_has_jobTitle ON employeeId = employee_has_jobTitle.employee_employeeId                         INNER JOIN jobTitle ON employee_has_jobTitle.jobTitle_jobTitleId = jobTitleId                         INNER JOIN employee_has_department ON employee.employeeId = employee_has_department.employee_employeeId                        INNER JOIN department ON employee_has_department.department_departmentId = departmentId                        WHERE firstName = :firstName AND lastName = :lastName AND employeeId <> 9'); /* <> 9?!?  Yeah, I don't want people to be able to view my profile :) */ $stmt->setFetchMode(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE, 'Employee'); $stmt->execute(array('firstName'=>$getFirstName,'lastName'=>$getLastName));  $employee = $stmt->fetch(); } catch(PDOException $e) {   echo "Oops! " . $e->getMessage(); }  ?> 

Wow, that's a HUGE class. At least it seems that way to me, but I'm no pro. Is that too long? How should it be split if so? Is this me doing a whole bunch of procedural code, wrapping it in a class, and deeming it OOP, or am I on the right track? Just a few of my concerns there.

The Display Page

<?php include 'includes/phpScripts/profile.php';  $title = "--- Profile: " . $employee->display_name(); $description = "--- Profile: " . $employee->display_name();  include 'includes/headerFooters/mainHeader.php';  ?>  <div id="columnContainer">   <div id='centerColumn'>     <h1><?=$employee->display_name();?></h1>      <?=$employee->display_photo();?>      <div class='contactContainer'>       <?php         foreach($employee->display_departments() as $dept) {           echo "<h3>$dept</h3>";         }       ?>        <p>         <?php            $firstJob = true;           foreach($employee->display_jobs() as $job) {             if($firstJob) {               $firstJob = false;             }             else {               echo ", ";             }             echo $job;            }         ?>       </p>        <p>         <strong>Phone: </strong><?=$employee->display_phone();?><br>         <strong>Fax: </strong><?=$employee->display_fax();?><br>         <strong>E-mail: </strong><br><?=$employee->display_email();?>       </p>        <p><?=$employee->display_address();?></p>        <div class='clearfix'></div>     </div>   </div>    ... </div>  <?php include('includes/headerFooters/mainFooter.php'); ?> 

I created this layout while I was still a student, and I look at the code now and cringe. I've recently been reading about OOCSS and not using id for styling, but with hundreds of pages involved, we can't invest the time for a (much needed) redesign just yet. However, am I separating out the PHP enough here, or should more things be done inside the class methods (the for loops, adding the comma, etc)?

My apologies for the extremely long code, I expect some tl;dr. However, am I on the right track for OOP, or do I need to hit the books, and Google, a bit more?

Once I get a few good habits, I'll be diving into Laravel 4. Let me know if I'm ready for it, and thanks in advance for any tips!

        

Lista de respuestas

2
 
vote
vote
La mejor respuesta
 

Hay mucho que podría mejorarse, por lo que solo unos pocos comentarios.

1.) La configuración debe ponerse en un archivo separado.

  $dbHost = "example.com"; $dbName = "exampleDB"; $user = "WouldntYou"; $password = "LikeToKnow";   

Es mejor usar constantes para la configuración, por lo que sus valores no se pueden sobrescribir.

  define('DB_HOST', 'example.com'); define('DB_NAME', 'exampleDB'); define('DB_USER', 'WouldntYou'); define('DB_PASSWORD', 'LikeToKnow');   

2.) Debe hacer una validación de la entrada y debe inicializar sus variables, con la inicialización, se deshará del bloque 9988777766555544332 innecesario.

Código original:

  if(isset($_GET['facultyName'])) {     $facultyName = explode("-", $_GET['facultyName']);     $getFirstName = ucfirst($facultyName[1]);     $getLastName = ucfirst($facultyName[0]); } else {     $getFirstName = "";     $getLastName = ""; }   

Código actualizado:

  $getFirstName = ''; $getLastName  = ''; if (array_key_exists('facultyName', $_GET)){     $facultyName = explode("-", $_GET['facultyName']);      if (count($facultyName) == 2 && strlen($facultyName[0]) && strlen($facultyName[1])){         $getFirstName = ucfirst($facultyName[1]);         $getLastName = ucfirst($facultyName[0]);     } }   

3.) La clase debe definirse en un archivo separado, por lo que se puede utilizar en otro lugar.

4.) En su clase, hay un atributo de los inutilizadores private $employeeId; .

5.) En el método display_name Hay una variable no declarada $suffix , siempre debe inicializar sus variables antes de usarlas.

6.) Está utilizando los atributos de clase, pero no los está configurando en ninguna parte, todos contienen null valor.

7.) Debe establecer atributos de clase en __conistro de estructores o mediante 9988777665544339 MÉTODOS.

8.) Si está accediendo a los atributos desde fuera de la clase, debe hacerlo a través de define('DB_HOST', 'example.com'); define('DB_NAME', 'exampleDB'); define('DB_USER', 'WouldntYou'); define('DB_PASSWORD', 'LikeToKnow'); 0 MÉTODOS.

9). Está creando HTML dentro de la clase, es mejor usar el patrón de MVC.

10.) En su consulta SQL, está utilizando el valor codificado duro 9, el valor debe estar en la configuración.

11.) La consulta de SQL es demasiado compleja, debe pensar si se puede simplificar, la consulta será probablemente muy lenta con más filas en las tablas.

12.) ¿Ponga demasiado a define('DB_HOST', 'example.com'); define('DB_NAME', 'exampleDB'); define('DB_USER', 'WouldntYou'); define('DB_PASSWORD', 'LikeToKnow'); 1 Block, debe colocar la conexión de su base de datos y la ejecución de consulta en bloques separados.

13.) Sus comentarios de PHPDOC están equivocados:

Original:

  define('DB_HOST', 'example.com'); define('DB_NAME', 'exampleDB'); define('DB_USER', 'WouldntYou'); define('DB_PASSWORD', 'LikeToKnow'); 2  

Actualizado:

  define('DB_HOST', 'example.com'); define('DB_NAME', 'exampleDB'); define('DB_USER', 'WouldntYou'); define('DB_PASSWORD', 'LikeToKnow'); 3  

Si no hay parámetros, no use ningún 99887766655443314 en la documentación. NO UTILICE define('DB_HOST', 'example.com'); define('DB_NAME', 'exampleDB'); define('DB_USER', 'WouldntYou'); define('DB_PASSWORD', 'LikeToKnow'); 5 AQUÍ define('DB_HOST', 'example.com'); define('DB_NAME', 'exampleDB'); define('DB_USER', 'WouldntYou'); define('DB_PASSWORD', 'LikeToKnow'); 6 .

14.) Si usa define('DB_HOST', 'example.com'); define('DB_NAME', 'exampleDB'); define('DB_USER', 'WouldntYou'); define('DB_PASSWORD', 'LikeToKnow'); 7 para envolver las cadenas, el intérprete PHP examinará a esas cadenas y buscará variables, si usa 99887776655443318 luego, el intérprete de PHP no Necesito hacer eso.

15). Usted está utilizando un punto y coma innecesario en el código PHP de una sola línea define('DB_HOST', 'example.com'); define('DB_NAME', 'exampleDB'); define('DB_USER', 'WouldntYou'); define('DB_PASSWORD', 'LikeToKnow'); 9 , se puede escribir como este else0 , es común dejar fuera de punto y coma en una línea PHP código.

16.) En la vista Archivos, es más legible usar sintaxis alternativa PHP:

Original:

  else1  

Actualizado:

  else2  

17.) Debe leer sobre el patrón de diseño de MVC y tratar de implementarlo, o incluso mejor usar un marco PHP como Symfony2, Laravel o algo similar.

 

There is a lot that could be improved, so just a few remarks.

1.) Configuration should be put into separate file.

$dbHost = "example.com"; $dbName = "exampleDB"; $user = "WouldntYou"; $password = "LikeToKnow"; 

It is better to use constants for configuration, so their values can't be overwritten.

define('DB_HOST', 'example.com'); define('DB_NAME', 'exampleDB'); define('DB_USER', 'WouldntYou'); define('DB_PASSWORD', 'LikeToKnow'); 

2.) You should do some validation of input and you should initialise your variables, with initialisation you will get rid of unnecessary else block as well.

Original code:

if(isset($_GET['facultyName'])) {     $facultyName = explode("-", $_GET['facultyName']);     $getFirstName = ucfirst($facultyName[1]);     $getLastName = ucfirst($facultyName[0]); } else {     $getFirstName = "";     $getLastName = ""; } 

Updated code:

$getFirstName = ''; $getLastName  = ''; if (array_key_exists('facultyName', $_GET)){     $facultyName = explode("-", $_GET['facultyName']);      if (count($facultyName) == 2 && strlen($facultyName[0]) && strlen($facultyName[1])){         $getFirstName = ucfirst($facultyName[1]);         $getLastName = ucfirst($facultyName[0]);     } } 

3.) Class should be defined in a separate file, so it can be used elsewhere.

4.) In your class there is unuses attribute private $employeeId;.

5.) In method display_name there is undeclared variable $suffix, you should always initialize your variables before using them.

6.) You are using class attributes, but you are not setting them anywhere, they all containg null value.

7.) You should set class attributes in __constructor or via setAttributeName($attributeName) methods.

8.) If you are accessing attributes from outside of class you should do it via getAttribtueName() methods.

9.) You are creating HTML inside class, it is better to use MVC pattern.

10.) In your SQL query you are using hard coded value 9, the value should be in configuration.

11.) The SQL query is overly complex, you should think about if it can be simplified, the query will be probably very slow with more rows in the tables.

12.) You put too much to try {...} catch(...) {...} block, you should put your database connection and query execution into separate blocks.

13.) Your PHPDoc comments are wrong:

Original:

/**  * @desc Splits the jobTitle into an array, with "----" as delimiter  * @param - n/a  * @return array - each index contains a job title  */ 

Updated:

/**  * Splits the jobTitle into an array, with "----" as delimiter  *       * @return array Each index contains a job title.  */ 

If there are no parameters then don't use any @param in documentation. Do not use - here @return array - each ....

14.) If you use "" for wrapping strings then PHP interpreter will look into those strings and search for variables, if you use '' then PHP interpreter won't need to do that.

15.) You are using unnecessary semicolon in single line PHP code <?=$employee->display_name();?>, can be written like this <?= $employee->display_name() ?>, it is common to leave out semicolon in one line PHP code.

16.) In view files it is more readable to use alternative PHP syntax:

Original:

<?php foreach($employee->display_departments() as $dept) {     echo "<h3>$dept</h3>"; } ?> 

Updated:

<? foreach($employee->display_departments() as $dept) : ?>     <h3><?= $dept ?></h3> <? endforeach ?> 

17.) You should read about MVC design pattern and try to implement it, or even better to use some PHP Framework like Symfony2, Laravel or something similar.

 
 
         
         
2
 
vote

Su archivo else3 está haciendo demasiado. Una buena prueba para ver si se está adhiriendo a la separación de las preocupaciones, el principio es: hacer una cosa y hacerlo bien.

Parece else4 está haciendo las siguientes cosas:

  1. Recopilación de información de los parámetros de solicitud HTTP
  2. definiendo una clase "modelo" llamada else5
  3. El else6 clase es formatear html
  4. La parte inferior del archivo está consultando la base de datos para el registro del empleado

Debe leer en el Patrón de programación de controlador de visión modelo . Desde que está escribiendo PHP, consulte objetos, patrones y prácticas PHP . Es una gran lectura sobre OOP en PHP y cómo puede aplicar muchos de los patrones de programación comunes.

 

Your profile.php file is doing way too much. A good test to see if you are adhering to the Separation of Concerns principle is: Do one thing, and do it well.

It seems profile.php is doing the following things:

  1. Gathering information from the HTTP request params
  2. Defining a "model" class called Employee
  3. The Employee class is formatting HTML
  4. The bottom of the file is querying the database for the Employee record

You should read up on the Model-View-Controller programming pattern. Since you are writing PHP, check out PHP Objects, Patterns and Practices. It's a great read about OOP in PHP and how you can apply many of the common programming patterns.

 
 
   
   

Relacionados problema

4  Conexión PDO (MYSQL) y Clase de consulta, seguridad y lógica  ( Pdo mysql connection and query class safety and logic ) 
Durante los últimos días, intenté averiguar cómo trabajar con MySQL y PDO. Aunque he tratado de leer mucho sobre el tema, todavía hay muchas cosas que no enti...

0  Formulario de sintaxis PDO  ( Syntax form pdo ) 
Pudo ejecutar el formulario para actualizar los datos del perfil de usuario, por el momento está en una versión aproximada, pero sé que se puede mejorar. Pu...

5  Autenticación de inicio de sesión PHP con BCIPTPT  ( Php login authentication with bcrypt ) 
Tengo un script de autenticación PHP y todo funciona bien, pero no estoy seguro de la forma en que lo programé (i hard codificé algunas cosas). Esperaba que l...

9  Método de base de datos para consultar  ( Database method to query ) 
Tengo una clase de base de datos que en __construct() Inicialice una conexión PDO e inserte la instancia en un VAR privado de $ dB. Ahora estoy trabajando e...

5  ¿Hay algún problema para revisar la conexión PHP PDO de esta manera?  ( Is there any problem in checking php pdo connection this manner ) 
¿Hay algún problema para revisar la conexión PHP PDO de esta manera? es de esta manera confiable? function pdo_mysql() { $mysql_string = "xxxxxxxxxxx"; ...

1  Un sistema similar / a diferencia de MySQL y PDO  ( A like unlike system using mysql and pdo ) 
He creado un sistema similar / a diferencia. El usuario hace clic en uno para indicar un "Me gusta" y hacer clic nuevamente para "A diferencia de". Actualment...

8  Clase de base de datos usando PDO  ( Database class using pdo ) 
el punto de esta pregunta En realidad, lo estoy usando mientras desarrolla una aplicación simple y parece cubrir todas mis necesidades. También utiliza PD...

1  Categorizar y Sub clasificar desde el contenido de una fila y más ejecute aún más consultas en resultados  ( Categorize sub categorize from contents of one row and more execute even more ) 
Tengo una tabla llamada sales y tiene debajo de las columnas: 'id' 'product_type' 'soldDate' 'text' 'product_type' Ejemplos: Tshirt-XL , Tshirt-L...

4  Consulta para trazar un histograma de calificaciones de canciones  ( Query to plot a histogram of song ratings ) 
Escribí código para trazar una distribución de calificación, que se parece a esto: La función más importante es el stats Función: function stats($so...

2  Adquiriendo información de los empleados  ( Acquiring employee information ) 
Tengo curiosidad por saber si hay una forma más rápida, mejor y más eficiente de lograr este programa que adquiere información de los empleados: <?php ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos