который быстрее:, который быстрее mysqli_prepare или mysqli_query?
1.
$name = $sql->real_escape_string($_POST['name']);
$age = $sql->real_escape_string($_POST['age']);
$email = $sql->real_escape_string($_POST['email']);
$query = "INSERT INTO `tablename` VALUES ('$name','$age','$email');";
$sql->query($query) or die($query.'<br />'.$sql->error);
2.
$name = $_POST['name'];
$age = $_POST['age'];
$email = $_POST['email'];
$query = $sql->prepare("INSERT INTO `tablename` VALUES ('?','?','?');");
$query->bind_param("sis",$name,$age,$email);
$query->execute();
при использовании подготовки и связать пары вы отправляете больше запроса на базу данных MySQL, которая займет больше времени, потому что запросов больше, и каждый запрос имеет время соединения.
Это правда, если база данных mysql не находится на сервере localhost.
Это утверждение верно? спасибо
Не совсем правильно, нет .... интерфейс MySQLi достаточно умен, чтобы отправлять только значения из параметров связывания с сервером базы данных один раз, на exeute насколько мне известно ... и наносекундное различие в производительности (даже на удаленном сервере базы данных) не следует считать более важным, чем правильно защищать ваш код ..... тем более, что вы можете использовать тот же подготовленный оператор несколько раз с разными значениями привязки, что делает его более быстрым в этом обстоятельстве –
И вы уже должны были подключиться к базе данных, поэтому не должно быть времени на соединение, связанное с 'prepare()'/'bind()'/'execute()' (или действительно в 'query()') –
@MarkBake Благодарю вас за вашу ответственность, да, и там не будет больше связи. но команда подготовки отправит запрос в базу данных, и я обращаюсь к этому времени запроса. – david