php - 关于PHP-Column count does not match value count at row 1的错误
问题描述
我是 PHP 新手。我创建了一个登录表单,然后填写了所有输入字段。我单击“提交”,然后它说..“列数与第 1 行的值计数不匹配”。有人帮我解决这个问题。我已经有将近 1 周的时间了。这是我的代码。和我的数据库连接。
<?php
$connection = mysqli_connect("localhost","root","","db_violation");
function DBCon(){
try{
$connection = new PDO("mysql:host=localhost;port=3306;dbname=db_violation;","root","");
return $connection;
}catch(PDOException $e){echo "Connection failed: ".$e->getMessage();}
}function DBDiscon(){return $connection = null;}
?>
<?php
include '../../PROCESS/dbconnect/dbconnect.php';
$datauserssystems = json_decode(file_get_contents("php://input"));
$user_firstname = mysqli_real_escape_string($connection, $datauserssystems->user_fname);
$user_middlename = mysqli_real_escape_string($connection, $datauserssystems->user_mname);
$user_lastname = mysqli_real_escape_string($connection, $datauserssystems->user_lname);
$user_address = mysqli_real_escape_string($connection, $datauserssystems->user_address);
$user_positionss = mysqli_real_escape_string($connection, $datauserssystems->user_positions);
$user_age = mysqli_real_escape_string($connection, $datauserssystems->user_age);
$user_username = mysqli_real_escape_string($connection, $datauserssystems->user_uname);
$user_userpass = mysqli_real_escape_string($connection, $datauserssystems->user_pwd);
$tableRows = DBCon()->prepare("SELECT COUNT (*) AS row FROM sb_account");
$tableRows->execute();
$count = $tableRows->fetch();
$count = ($count["row"]+1);
$gain ="SbAdmin";
$encrpt = md5($gain.$user_userpass);
$security = DBCon()->prepare("INSERT INTO sb_account_security VALUES('".$count."','".$encrpt."','".$user_userpass."')")->execute();
$sbuserssssquery = mysqli_query($connection, "SELECT * FROM sb_account WHERE sb_username='$user_username'");
$sbuserssssarray = mysqli_fetch_array($sbuserssssquery);
$sbuserssss = $sbuserssssarray['sb_username'];
if($sbuserssss == $user_username) {
echo "sbtwice";
die();
}
else {
mysqli_query($connection, "INSERT INTO sb_account (sb_firstname,sb_middlename,sb_lastname,sb_fullname,sb_address,sb_position,sb_age,sb_username,sb_password) VALUES ('$user_firstname','$user_middlename','$user_lastname','$user_address','$user_positionss','$user_age','$user_username','$encrpt')");
if(mysqli_affected_rows($connection) > 0) {
echo "AddUserSystem";
die();
}
else {
echo mysqli_error($connection);
die();
}
}
?>
解决方案
您的 mysql 插入查询有问题:
INSERT INTO sb_account
(sb_firstname,
sb_middlename,
sb_lastname,
sb_fullname,
sb_address,
sb_position,
sb_age,
sb_username,
sb_password)
VALUES ('$user_firstname',
'$user_middlename',
'$user_lastname',
'$user_address',
'$user_positionss',
'$user_age',
'$user_username',
'$encrpt');
这里有 9 列,但提供了 8 个值。您没有为sb_fullname
列传递值。
推荐阅读
- mysql - 为什么当两个人使用带有mysql的express api时,它给出了空响应,它没有崩溃但没有给出响应
- c++11 - 检查 << 运算符是否适用于覆盖模板上下文
- matlab - 谁能帮我解决有关 DPARSF 的问题?
- r - 泛化 data.frame 子集函数
- spring-webflux - 如何为 Spring Webflux WebClient (ReactorClientHttpConnector) 设置授权代理?
- javascript - 使用 getelementid 更改 SVG 过滤器
- java - java.lang.RuntimeException:RESTEASY003940:无法实例化 MessageBodyReader
- java - Java 命令行参数:简单打印不适用于“@%&^%”(不带引号)。请解释
- python - 如何在世界坐标系中绘制相机位置?
- node.js - 在中间件文件中编码或清理请求正文