private function SqlExecute($sql, $array = [], $param = [])
{
if(sizeof($array) == sizeof($param))
{
$ini__li = $this->Connect();
$Query = $ini__li->prepare($sql);
$pr = [
0 => PDO::PARAM_INT,
1 => PDO::PARAM_STR
];
$i = 0;
foreach($array as $key => $str)
{
$p = $param[$i];
$Query->bindParam($key, $str, $pr[$p]);
$i++;
}
return $Query->execute();
}else{
return false;
}
}
В массиве $param
передаются значения 0 или 1.
В массиве $array
, ключ маски и значение.
Некоторые запросы выполняются, а некоторые нет. Не могу найти ошибку.
PDOStatement::bindParam Связывает переменную PHP с именованным или неименованным параметром подготавливаемого SQL-запроса. В отличие от PDOStatement::bindValue(), переменная привязывается по ссылке и ее значение будет вычисляться во время вызова PDOStatement::execute().
Вы передаете переменную $str, но видно, что она передается по ссылке и когда вы меняете переменную $str она меняется и внутри запроса. В процессе цикла вы именно ее и меняете,то есть цикл это делает автоматически.
По этой причине я заменил временную переменную цикла $str, на переменную $array[$key], эта переменная не будет менять свое значение и во время запроса (execute) будет иметь тоже значение что и в цикле
private function SqlExecute($sql, $array = [], $param = [])
{
if(sizeof($array) == sizeof($param))
{
$ini__li = $this->Connect();
$Query = $ini__li->prepare($sql);
$pr = [
0 => PDO::PARAM_INT,
1 => PDO::PARAM_STR
];
$i = 0;
foreach($array as $key => $str)
{
$p = $param[$i];
$Query->bindParam($key, $array[$key], $pr[$p]);
$i++;
}
return $Query->execute();
}else{
return false;
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как сделать авторизацию ВК по логину и паролю? Документация вроде требует разрешение на такую авторизацию и то с лимитамиХочу сделать автопостинг...