Jump to content
php.lv forumi

mysqli connect parametri ar implode


Trac3 !!

Recommended Posts

Sveiki.

 

mēģinu panākt šādu lietu:

$mysqli = array(
   "localhost",
   "username",
   "password",
   "database"
 );

$sql = new mysqli(implode(",",$mysqli));

 

 

kļūdas paziņojums:

 

Warning: mysqli::mysqli(): php_network_getaddresses: getaddrinfo failed: No such host is known.  in xxxxxxxx on line 42

Warning: mysqli::mysqli(): [2002] php_network_getaddresses: getaddrinfo failed: No such host is kn (trying to connect via tcp://localhost,username,password,database:3306) in xxxxxxxx on line 42

Warning: mysqli::mysqli(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: No such host is known.  in xxxxxxxx

 

Ideja ir ka padod masīvu un tad to izmanto, lai padotu parametrus kadai klasei, šajā gadijumā mysqli.

Edited by Trac3 !!
Link to comment
Share on other sites

Nu loģiski ka nevar. Implode uztaisa vienu stringu.

 

$str = implode(",",$mysqli)

 

//$str = "viens,otrs,divi,triis";

 

Tev tur prasa 4 parametrus, a tu padod viņam vienu stringu.

 

Dari tā

 

new mysqli($mysqli[0],$mysqli[1],$mysqli[2],$mysqli[3]);

Link to comment
Share on other sites

Godīgi sakot, nezinu vai tā varēs. Kā tu vari padot kkādu noteiktu kopu ar parametriem, ja nemaz nezini cik viņi tiek prasīti, vai vispār kādā secībā? Ja tu zini, ka vienmēr būs tādā secībā, tad gribētu pajautāt, cik dažādām un kādām funkcijām taisies padot viņus? :D

 

Man liekas, tas ko vēlies panākt ir galīgi sķērss programmēšanas stils...

Edited by briedis
Link to comment
Share on other sites

Tas neizskatās pēc šķērsa stila, tas izskatās pēc idiotijas.

 

Bet nu ja ļoti gribas, lai visur padotu tikai vienu masīvu, tad var no sērijas "my_mysqli Extends mysqli" visām klasēm, un tad konstruktoru savu uztaisīt, kurš padod, kādā secībā vajag, pārējais inherited. Bet tas ir vairāk nekā sviests.

Link to comment
Share on other sites

eval nav smuki.

Tā vietā labāk izmanto call_user_func_array funkciju:

$object_class = "mysqli";
$constructor_arguments = array("111", "222", "333", ...);

$obj = new $object_class(); 
call_user_func_array(array($obj, '__construct'), $constructor_arguments);

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...