我正在做一个基本的插入与pdo,我没有我的成功消息,当我提交我的表单。
但是两者都没有错误,所以我在我的代码顶部使用error_reporting(E_ALL);
。
我现在得到一个错误::只有变量应该在$insert->bindParam(9, convert_datetime($f['date']));
中通过引用传递。
这个错误很有启发性,然而,我不明白为什么我有这个错误,因为在其他部分,例如插入类别,我在我的bindParam中使用这个函数,它工作得很好。
$insert = $pdo->prepare("INSERT INTO admins(name, email, pass, date) VALUES (?,?,?,?)");
$insert->bindParam(1, $f['name']);
$insert->bindParam(2, $f['email']);
$insert->bindParam(3, $f['pass']);
$insert->bindParam(4, convert_datetime($f['date']));
$insert->execute();
if($i_a->rowCount() >=1){
echo '<div>Admin inserted with sucess</div>';
}
我的函数convert_datetime()
function convert_datetime($date_received){
$english = array("...");
$spanish = array("...");
$result_date = str_ireplace ($english , $spanish, $date_received);
$date_received = DateTime::createFromFormat('l, j F, Y', $result_date);
$date_received = $date_received->format('Y-m-d H:i:s');
return $date_received;
谢谢你的帮助,我现在找到我的问题了
似乎这个问题与我的bindParam方法中的函数无关。
我的admins表有一个列"avatar"被定义为非空(avatar varchar(255) NOT NULL,
),我在没有选择任何头像的情况下插入我的admin。
所以我只需要在我的数据库中更改我的头像定义为avatar varchar(255) DEFAULT NULL,,
,现在一切都很好。
谢谢你的帮助!
第一个参数以外的参数通过引用传递。这意味着它们必须是变量,而不是字符串。试试这个
$date = convert_datetime($f['date']);
$insert->bindParam(4, $date);