Мне нужна помощь с моей функцией, которую я собираю, я пытаюсь использовать MYSQLI, но я не так хорош.Функция динамической вставки в базу данных с использованием mysqli prepare
это моя функция:
function insertToDb($table,$rowsarray,$valuequestionmarks,$lenstrings,$valarray){
$this->mysqli->set_charset("utf8");
if ($insert_stmt = $this->mysqli->prepare(
"INSERT INTO $table ($rowsarray)
VALUES
($valuequestionmarks)"
))
{
$insert_stmt->bind_param("$lenstrings",$valarray);
// Execute the prepared query.
if(!$insert_stmt->execute())
{
die("Execute failed: (" . $insert_stmt->errno . ") " . $insert_stmt->error);
}
}
}
И это, как я называю:
$img = "something.jpg";
$uip = ulUtils::GetRemoteIP(false);
$table='forgotpassqm';
$rowsarray = 'email,text,img,ip';
$valuequestionmarks ='?,?,?,?';
$lenstrings ='ssss';
$valarray ='$email,$text,$img,$uip';
$func->insertToDb($table,$rowsarray,$valuequestionmarks,$lenstrings,$valarray);
И я держу получить эту ошибку:
Warning: mysqli_stmt::bind_param(): Number of elements in type definition string doesn't match number of bind variables
И выполнить ошибку:
Execute failed: (2031) No data supplied for parameters in prepared statement
Я попробовал выделить комбинацию без работы, я прочитал другой вопрос, как мой, и никто не работал или не помогал.
И я знаю, что это касается ssss, но я использую 4, и кажется, что все в порядке, где я здесь не так? Спасибо.
EDIT:
$table output : forgotpassqm .
$rowsaray output: email,text,img,ip .
$valuequestionmarks output : ?,?,?,? .
$lenstrings output: ssss.
$valarray output: $email,$text,$img,$uip.
Я думаю, что проблема в $ valarray.
Что не так с тем, как я сделал? вы посмотрели, как я вставил параметры через vars? – Ravg
Да, я сделал, однако утверждение, которое вы имеете о '$ valarray = '$ email, $ text, $ img, $ uip';', является не чем иным, как строкой, поскольку вы используете одинарные кавычки. Я думаю, что я вижу, что вы пытаетесь сделать, но я бы предложил вам приблизиться к реализации немного по-другому. – Crackertastic
Хорошо, я понял, я отлажен, и это проблема, у вас есть предложение? возможно, я использую его как array(), а затем в функции я буду использовать список? – Ravg