Что (строка) означает в подготовленном выражении php / mysql? - PullRequest
0 голосов
/ 28 февраля 2019

Никогда не видел этого раньше.Не удалось найти и объяснить, и я видел его на днях в коде, например:

    $statement = $db->prepare("insert into table (col1, col2, col3) values (?, ?, ?)");
    $data = array((string) $var1, (string) $var2, (string) $var3);
    $statement->execute($data);

См. Эту (строку) часть?Кто-нибудь, чтобы пролить свет на это, пожалуйста?

Ответы [ 3 ]

0 голосов
/ 28 февраля 2019

Это простое приведение, здесь в коде, в то время как запрос является строкой, поэтому (строка) убедитесь, что вы управляете строкой, вот PHP DOC:

(int), (integer) - cast to integer
(bool), (boolean) - cast to boolean
(float), (double), (real) - cast to float
(string) - cast to string
(array) - cast to array
(object) - cast to object
(unset) - cast to NULL

http://php.net/manual/en/language.types.type-juggling.php

Пример:

$int = 4;
$string = (string)$int; 
echo gettype($int); // output snteger
echo gettype($string); // output string

Как правило, значение приведения типа заключается в использовании значения переменной с другим типом данных.

0 голосов
/ 28 февраля 2019

Вы можете связать параметр

$stmt = $conn->prepare("INSERT INTO table (col1, col2, col3) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $var1, $var2, $var3);
$stmt->execute();

Спецификация типа символов

i соответствующая переменная имеет тип integer

d соответствующая переменная имеет тип double

s соответствующая переменная имеет тип string

b соответствующая переменная является BLOB-объектом и будет отправлена ​​в пакетах

0 голосов
/ 28 февраля 2019

Это означает, что все, что записано в $ var1, а остальные преобразованы в строку, чтобы программа могла обрабатывать ввод без ошибок.

...