13

I read the doumentation But I don't understand the difference exactly.

What difference does the connection object make in this? I didn't find any posts.

I misunderstood it. Flags are not present in both. Why didn't they add flags as part of mysqli_connect? Any specific reasons? Which one should I use?

Gibbs
  • 21,904
  • 13
  • 74
  • 138

3 Answers3

7

mysqli_real_connect() and mysqli_connect is different in way that

mysqli_real_connect() accepts a lot more options than mysqli_connect

For example I am building a health-check script for my Loadbalancer and I want set the very low connection timeout.

Now the connection timeout has to be set using:

mysqli_options() with the option name MYSQLI_OPT_CONNECT_TIMEOUT

Now the thing with mysqli_options() is that this should be called after mysqli_init() and before mysqli_real_connect().

mysqli_connect cannot be used for this purpose.

Hope this explanation helps.

<?php
//create the object
$connection = mysqli_init();

//specify the connection timeout
$connection->options(MYSQLI_OPT_CONNECT_TIMEOUT, 3);

//specify the read timeout
$connection->options(MYSQLI_OPT_READ_TIMEOUT, 3);

//initiate the connection to the server, using both previously specified timeouts
$connection->real_connect('server', 'user', 'pass', 'database');
?>
Erfan Ilyas
  • 71
  • 1
  • 2
6

This function differs from mysqli_connect():

mysqli_real_connect() needs a valid object which has to be created by function mysqli_init().

With the mysqli_options() function you can set various options for connection.

There is a flags parameter.

RiggsFolly
  • 93,638
  • 21
  • 103
  • 149
Ehab Eldeeb
  • 722
  • 4
  • 12
4

With mysqli_real_connect you can test if the initialization of the mysqli object was successful and set any mysqli_options before connecting.

HenryTK
  • 1,287
  • 8
  • 11