使用预处理语句和mysqli我试图将波纹管数据插入表中。当我运行代码时,即使我正在关注w3school的教程,我也会收到此错误。
这是我的代码:
$dbServerName = "localhost";
$dbUserName = "root";
$dbPassword = "";
$dbName = "candiadateDB";
$conn = mysqli_connect($dbServerName,$dbUserName,$dbPassword,$dbName);
$stmt_values = $conn->prepare("INSERT INTO candidates (username, firstname, lastname, password, coalition,program, starting_year, slogan, email) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");
$stmt_values->bind_param("sssssssss",$username, $firstname, $lastname, $password, $coalition,$program, $starting_year, $slogan, $email);
$stmt_values->execute();
$stmt_values->close();
$conn->close();
我正在从表单中检索变量$ username,$ fname,..:
$fname = mysqli_real_escape_string($conn,$_POST['fname']);
这是错误: 致命错误:在
中的非对象上调用成员函数bind_param()答案 0 :(得分:3)
bind_param不接受非变量作为参数
它们必须是变量。将meee存储为$meee = 'meee'
,例如
请参阅手册:http://php.net/manual/en/mysqli-stmt.bind-param.php
示例:
$value1 = 'mee';
$value2 = 'youu';
.
.
.
$stmt->bind_param("ss",$value1,$value2);
查看绑定点参数是不允许在查询中使用无效/不安全数据。您正在硬编码字符串/参数,所以在这种情况下,没有理由使用准备好的语句,因为您可以对INSERT INTO X (col1,col2) VALUES ('val1',val2')
执行相同操作。