繁体   English   中英

使用mySQLi在表中插入数据

[英]Inserting Data in Table with mySQLi

我正在尝试使用MySQLi将数据从表单插入表中。 在包含将插入数据的表单之前,我将数据库连接放在单独的包含文件中。 我的连接看起来像这样:

@$DB = new mysqli($mysqlHost,$mysqlUser,$mysqlPass,$mysqlDB);
if($DB ->connect_errno >0){
    echo 'Could not connect to the server at this time. Please try again later.';
    exit;
}

现在,我想执行一个查询,该查询会将用户信息存储到一个名为“用户”的表中。 当我在phpMyAdmin中运行查询时,它工作正常,因此我猜测它与语法或逻辑有关。 这是我的插入代码:

if($stmt = $DB->prepare("INSERT INTO `users`(`email`, `password`) VALUES ('value1', 'value2')")){
     $stmt->execute();
     $stmt->close();
}
echo 'Data INSERTED INTO table.';

这是我收到的错误:

警告:mysqli :: prepare():无法在C:\\ xampp \\ htdocs \\ Phpclass \\ Website \\ includes \\ register.php中获取mysqli

如果您需要其他信息,请告诉我,我已经从事此工作一段时间了,这非常令人沮丧。

您需要在$DB之前删除@ ,还要检查如下错误;

$DB = @new mysqli($mysqlHost,$mysqlUser,$mysqlPass,$mysqlDB);
if($DB->connect_errno){
    echo 'Could not connect to the server at this time. Please try again later.';
    exit;
}

$stmt = $DB->prepare("INSERT INTO `users`(`email`, `password`) VALUES ('value1', 'value2')")
if ($stmt === FALSE) {
    die($DB->error);
}
$stmt->execute();
$stmt->close();
$DB->close();
echo 'Data INSERTED INTO table.';

更改

$stmt = $DB->prepare("INSERT INTO `users`(`email`, `password`) VALUES ('value1', 'value2')");

if ($stmt = $DB->prepare("INSERT INTO `users`(`email`, `password`) VALUES (?, ?)"))
{
    $stmt->bind_param("ss", 'value1', 'value2');
    $stmt->execute();
    $stmt->close();
}

如果使用准备好的语句,则可以绑定参数。 准备好的语句可用于重复使用SQL查询,以导入大块数据。

如果您不需要导入大量数据,则建议使用以下内容代替:

$q = $DB->query("INSERT INTO `users`(`email`, `password`) VALUES ('value1', 'value2')");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM