mysqli::query

mysqli_query

(PHP 5, PHP 7, PHP 8)

mysqli::query -- mysqli_queryPerforms a query on the database

Açıklama

Nesne yönelimli kullanım

publicmysqli::query(string$query, int$result_mode = MYSQLI_STORE_RESULT): mysqli_result|bool

Yordamsal kullanım

mysqli_query(mysqli$mysql, string$query, int$result_mode = MYSQLI_STORE_RESULT): mysqli_result|bool

Performs a query against the database.

Uyarı

Güvenlik Uyarısı: SQL zerki

Sorgu herhangi bir değişken girdi içeriyorsa, bunun yerine bağımsız değişkenli hazırlanmış deyimler kullanılmalıdır. Veya, veriler düzgün biçimde biçimlendirilmeli ve tüm dizgeler mysqli_real_escape_string() işlevi kullanılarak öncelenmelidir.

For non-DML queries (not INSERT, UPDATE or DELETE), this function is similar to calling mysqli_real_query() followed by either mysqli_use_result() or mysqli_store_result().

Bilginize:

In the case where a statement is passed to mysqli_query() that is longer than max_allowed_packet of the server, the returned error codes are different depending on whether you are using MySQL Native Driver (mysqlnd) or MySQL Client Library (libmysqlclient). The behavior is as follows:

  • mysqlnd on Linux returns an error code of 1153. The error message means got a packet bigger than max_allowed_packet bytes.

  • mysqlnd on Windows returns an error code 2006. This error message means server has gone away.

  • libmysqlclient on all platforms returns an error code 2006. This error message means server has gone away.

Bağımsız Değişkenler

bağlantı

Sadece yordamsal tarz: mysqli_connect() veya mysqli_init() işlevinden dönen bir mysqli nesnesi.

query

The query string.

result_mode

The result mode can be one of 3 constants indicating how the result will be returned from the MySQL server.

MYSQLI_STORE_RESULT (default) - returns a mysqli_result object with buffered result set.

MYSQLI_USE_RESULT - returns a mysqli_result object with unbuffered result set. As long as there are pending records waiting to be fetched, the connection line will be busy and all subsequent calls will return error Commands out of sync. To avoid the error all records must be fetched from the server or the result set must be discarded by calling mysqli_free_result().

MYSQLI_ASYNC (available with mysqlnd) - the query is performed asynchronously and no result set is immediately returned. mysqli_poll() is then used to get results from such queries. Used in combination with either MYSQLI_STORE_RESULT or MYSQLI_USE_RESULT constant.

Dönen Değerler

Returns false on failure. For successful queries which produce a result set, such as SELECT, SHOW, DESCRIBE or EXPLAIN, mysqli_query() will return a mysqli_result object. For other successful queries, mysqli_query() will return true.

Hatalar/İstisnalar

Eğer mysqli hata bildirimi etkinse (MYSQLI_REPORT_ERROR) ve istenen işlem başarısız olursa bir uyarı üretilir. Ek olarak, kip MYSQLI_REPORT_STRICT ise bunun yerine mysqli_sql_exception istisnası oluşur.

Örnekler

Örnek 1 mysqli::query() example

Nesne yönelimli kullanım

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");


$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");
printf("Table myCity successfully created.\n");


$result = $mysqli->query("SELECT Name FROM City LIMIT 10");
printf("Select returned %d rows.\n", $result->num_rows);


$result = $mysqli->query("SELECT * FROM City", MYSQLI_USE_RESULT);


$mysqli->query("SET @a:='this will not work'");

Yordamsal kullanım

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");


mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");
printf("Table myCity successfully created.\n");


$result = mysqli_query($link, "SELECT Name FROM City LIMIT 10");
printf("Select returned %d rows.\n", mysqli_num_rows($result));


$result = mysqli_query($link, "SELECT * FROM City", MYSQLI_USE_RESULT);


mysqli_query($link, "SET @a:='this will not work'");

The above examples will output something similar to:

Table myCity successfully created. Select returned 10 rows. Fatal error: Uncaught mysqli_sql_exception: Commands out of sync; you can't run this command now in...

Ayrıca Bakınız

To Top