【问题标题】:Issue inserting data using mysqli in MySQL在 MySQL 中使用 mysqli 插入数据的问题
【发布时间】:2013-04-23 02:26:33
【问题描述】:

我尝试使用mysqli 在我的数据库中插入数据。但不起作用。可能是哪里出错了?

$myDb = new mysqli($hostname, $username, $password, $database);

if($myDb->connect_errno > 0){
    die('Unable to connect to database [' . $myDb->connect_error . ']');
}

$statment = $myDb->prepare("INSERT INTO user(name,surname,age)
VALUES (?,?,?)");
  $statement->bind_param('s', $_POST['name']);
  $statement->bind_param('s', $_POST['surname']);
  $statement->bind_param('i', 25);


  $statement->execute();

  $statement->free_result();

编辑:

我收到此错误:

Binding parameters failed: (0) Execute failed: (2031) No data supplied for parameters in prepared statement

【问题讨论】:

  • mysqli_error() 告诉你什么?
  • 你得到什么错误?
  • 绑定参数失败:(0) 执行失败:(2031) 没有为准备好的语句中的参数提供数据

标签: php mysql sql mysqli insert


【解决方案1】:

您在这里遇到了错误:

$statement->bind_param('i', 25);

25 不是变量。绑定参数时只能使用变量。绑定时不能使用常量,也不能使用固定的字符串或数字。

此外,绑定时拆分参数对我来说从来没有用过。我有一个错误。我需要这样做:

$myDb = new mysqli($hostname, $username, $password, $database);

if($myDb->connect_errno > 0){
    die('Unable to connect to database [' . $myDb->connect_error . ']');
}

$statement = $myDb->prepare("INSERT INTO user (name,surname,age) VALUES (?,?,25)");
$statement->bind_param('ss', $_POST['name'], $_POST['surname']);

$statement->execute();

$statement->free_result();
$statement->close();

【讨论】:

    【解决方案2】:

    我使用正确的参数绑定解决了这个问题。这里是正确的代码:

    $myDb = new mysqli($hostname, $username, $password, $database);
    
    if($myDb->connect_errno > 0){
        die('Unable to connect to database [' . $myDb->connect_error . ']');
    }
    
    $statment = $myDb->prepare("INSERT INTO user(name,surname,age)
    VALUES (?,?,?)");
      $statement->bind_param('s', $name);
      $statement->bind_param('s', $surname);
      $statement->bind_param('i', $age);
    
    $name = $_POST['name'];
    $surname = $_POST['surname'];
    $age  = 25;
    
    
      $statement->execute();
    
      $statement->free_result();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-13
      相关资源
      最近更新 更多