2014-10-20 77 views
0

我正在尝试使用参数化SQL做INSERT。我是新参数化的SQL。我的表名是archpedia.full_developers (db.table)参数化SQL:插入不起作用

我的连接也正常工作。我在我的数据库archpedia上创建了只有SELECT, INSERT, UPDATE权限的自定义用户。我甚至用root检查了SQL,只是为了确认用户权限是否存在一些错误,但即使root似乎也不起作用。

这里是我的PHP:

$query = "INSERT INTO full_developers (fullname, username, email, password, project, phone, token, salt) VALUES (?, ?, ?, ?, ?, ?, ?)"; 
    $insert_stmt = $mysqli->prepare($query); 
    echo "ok?"; 
    if ($insert_stmt) { 
     $insert_stmt->bind_param('sssssiss', $fullname, $username, $email, $password, $project, $phone, $uniqueToken, $random_salt); 
     //$insert_stmt->execute(); 
     // Execute the prepared query. 
     echo "check"; 
     if (! $insert_stmt->execute()) { 
      header('Location: ../error.php?err=Registration failure: INSERT'); 
     } 
    } 
    //header('Location: ./register_success.php'); 

那么我的错误是$insert_stmt->prepape($query);不起作用。我没有得到任何错误。当我在声明中回显“检查”以查看天气$insert_stmt正在工作与否时,它从不显示。我无法知道我在哪里做错了,因此任何帮助都会感激。

+1

您试图插入8个值,但在查询中只有7个占位符。 – 2014-10-20 04:36:58

回答

2

第一,如果你有8个值(缺少一个)

VALUES (?, ?, ?, ?, ?, ?, ?) 

添加8个占位符的8个值

VALUES (?, ?, ?, ?, ?, ?, ?, ?) 

错误报告检查进一步的错误

+0

谢谢你。该死的我怎么可能错过这样一个愚蠢的事情。也许在匆忙中。 – 2014-10-20 04:59:28

2

$查询=“INSERT INTO full_developers(全名,用户名,电子邮件,密码,项目,电话,令牌,盐)VALUES(?,?,?,?,?,?,?,?)”;

/用此替换您的查询。/