Kezdőoldal » Számítástechnika » Programozás » PHP-ben hogyan tudom egy...

PHP-ben hogyan tudom egy MYSQLi adatbázisból egy mező értékét kiírni?

Figyelt kérdés

2012. ápr. 30. 13:10
 1/4 anonim ***** válasza:

Itt vannak példakódok is: [link]

Bár manapság sokkal inkább: [link]

2012. ápr. 30. 14:00
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:

1.: Csatlakozol az adatbázisra.

2.: SQL parancsot adsz a MySQLi beépített class-nak.

(Azaz: $obj->query('SQL PARANCS IDE');

3.: Majd visszakeresed. De van nekem egy jó kis osztályom amivel megtudod csinálni pillanatok alatt.

2012. máj. 3. 12:02
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:
100%

Tessék használd egészséggel. Mondom mi mire való.


1.: Megnyitod az osztályt:

$obj = new DBQuery($host, $user, $pass, $db); paraméterek megfelelőivel.


2.: SQL lekérdezést adsz hozzá. SQL esetén tömböt fog visszaadni.

$array = $obj->query(SQL LEKÉRDEZÉS IDE);


A kapott tömb 2D-s. Azaz [sor][oszlop]

Mivel az array 1. index-e '0' ezért az első sor index-e nulla. Mondjuk egy nevet akarsz kikeresni, aminek az oszlop neve MySQL-ben 'name', akkor ezt így tudod: $array[0]['name']


PHP 5.4-ben már lehet ezt is alkalmazni:

echo $obj->query(SQL LEKÉRDEZÉS IDE)[0]['name'];


Tessék az osztály. Kezdetleges, de működik. Azért nézd át te is hátha.


<?php

class DBQuery {

private $result;

private $link;

private $status;


public function __construct($host, $user, $pass, $db) {

try {

$this->connectTry($host, $user, $pass, $db);

}

catch(Exception $e) {

echo $e->getMessage();

exit;

}

}


/**

*

* @throws Exception

*/

private function connectTry($host, $user, $pass, $db) {

$this->link = new mysqli($host, $user, $pass, $db, 3306);

$this->link->set_charset("utf8");

if($this->link->connect_errno) {

$this->status = FALSE;

throw new Exception('Error code: '.$this->link->connect_errno.'; Error message: '.$this->link->connect_error);

} else {

$this->status = TRUE;

}

}


/**

*

* @return object

*/

private function getLink() {

if($this->status) {

return $this->link;

}

}


/**

*

* @param string $query SQL

* @return object MySQLi Stmt mode

*/

public function prepare($query) {

return $this->link->prepare($query);

}


/**

*

* @param string $query SQL

* @return array|integer

*/

public function query($query) {

if(!$this->status) return FALSE;

try {

if(preg_match('#^(SELECT|INSERT INTO|UPDATE|DELETE FROM)#', $query)) {

$this->result = $this->link->query($query);

}

return $this->queryResultRun($query);

}

catch(Exception $e) {

echo $e->getMessage().' ## SQL: '.$query;

exit;

}

}


/**

*

* @return array|integer

* @throws Exception

*/

private function queryResultRun($query) {

if(is_object($this->result) or $this->result == TRUE) {

if(preg_match('#^SELECT#', $query)) {

return $this->dataAcquisition();

}

return $this->link->affected_rows;

} else {

throw new Exception('SQL Error!');

}

}


/**

*

* @return array

*/

private function dataAcquisition() {

$i = 0;

$dataTable = array();

for($i = 0; $i < $this->result->num_rows; $i++) {

$row = $this->result->fetch_assoc();

foreach ($row as $key => $value) {

$dataTable[$i][$key] = $value;

}

}

return $dataTable;

}


/**

*

* @param string|array $notEncodedText

* @return string|array

*/

public function res($notEncodedText) {

if(is_array($notEncodedText)) {

$coded = array();

foreach ($notEncodedText as $key => $value) {

$coded[$key] = $this->link->real_escape_string(trim($value));

}

return $coded;

} else {

return $this->link->real_escape_string(trim($notEncodedText));

}

}


/**

*

* @return integer

*/

public function getNumRows() {

return $this->result->num_rows;

}


/**

*

* @return integer

*/

public function getAffectedRows() {

return $this->link->affected_rows;

}

}

?>

2012. máj. 3. 12:11
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
Köszönöm szépen! Kicsit hozzáolvastam, és sikerült megcsinálni, amit akartam. Mentek a zöld kezek
2012. máj. 4. 06:28

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!