通过此代码,我收到一个错误。
//Prepare insert statement.
if($InsertEventQuery = $mysqli->prepare("INSERT into events(eventname, eventdesc, eventmonth, eventdate, eventyear, eventstart, eventend) VALUES ('$EventName','$EventDesc','$EventMonth','$EventDate','$EventYear','$EventStart','$EventEnd')"))
{
//Bind parameters of insert statement.
$InsertEventQuery->bind_param('ssiiiii', $EventName, $EventDesc, $EventMonth, $EventDate, $EventYear, $EventStart, $EventEnd);
这是错误:
警告:mysqli_stmt :: bind_param():变量数与[...]中准备好的语句中的参数数不匹配>
我进行了调查,因为该错误似乎不正确并且已找到:
在这种情况下,您不需要绑定参数。占位符用于INSERT语句或WHERE子句中的值。 (请注意,不允许使用占位符作为标识符,例如语句中的列名。)
这使我感到困惑,我现在想知道出于安全性的考虑,何时需要绑定参数,何时需要使用占位符。
通过此代码,我收到了一个错误。 //准备插入语句。 if($ InsertEventQuery = $ mysqli-> prepare(“ INSERT into events(eventname,eventdesc,eventmonth,eventdate,eventyear,eventstart,...
绑定参数在任何INSERT语句中都是一个好主意,因为它将防止SQL注入,并且还将免费清理字符串。
我通常会在准备语句中使用问号使它正常工作: