(PHP 5, PHP 7, PHP 8)
mysqli::query -- mysqli_query — Performs a query on the database
Nesne yönelimli kullanım
Yordamsal kullanım
Performs a query
against the database.
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 meansgot a packet bigger than.max_allowed_packet
bytes
mysqlnd
on Windows returns an error code 2006. This error message meansserver has gone away.
libmysqlclient
on all platforms returns an error code 2006. This error message meansserver has gone away.
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.
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
.
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.
Ö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...