gpt4 book ai didi

php - 无效查询 : Data too long for column 'x' at row 'y'

转载 作者:行者123 更新时间:2023-11-29 08:19:53 25 4
gpt4 key购买 nike

还没有找到有用的解决方案,所以我要开火了。每当我尝试运行验证脚本时,我都会遇到此错误。

我们为各个学校运行一个数据库管理系统,当该学校的第一个用户(可以说是 super 管理员)注册时,我们会收集整个学校的数据。当该学校的后续员工进行登记时,他们的登记条目将根据数据库进行检查,以将新的登记表与正确的员工联系起来(当然,如果适用的话)。

为了避免在员工具有相同姓氏/姓氏首字母时出现错误(这当然很有可能),我正在开发一个验证脚本,每当出现具有相似首字母/姓氏组合的人数时,该脚本就会自动启动。

$sql=("SELECT `idStaff`, `Staff` FROM `mldb`.`staff`
WHERE `Staff` LIKE '%$in%$sn'");

$qu=mysqli_query($dbc,$sql);
id=mysqli_fetch_array($qu);

if (mysqli_num_rows($qu) > 1)
{
load ('duplication.php') ;
}

在复制页面上,打印所有员工的完整循环(及其全名和主题区域),用户可以单击他们相应的姓名。这些名称中的超链接重定向到验证脚本,如下所示:

{
echo '<p>We have found multiple entries with that name. Please verify who you are.</p>' ;
{
while ($row = mysqli_fetch_array ($r, MYSQLI_ASSOC))
{
echo '<br><a href="verification.php?id='.$row['idStaff'].
'"> ' . $row['Staff'] . ', ' . $_SESSION['School'] . ', '
. $_SESSION['SubjectArea'] . ' </a>' ;
}

}

下面是验证脚本,它(应该)更新注册用户表,将员工 ID 和完整员工姓名添加到注册用户中,这样它们就不会再显示为重复。

if(isset($_GET['id'])) $id = $_GET['id'];
{
$s = "SELECT DISTINCT `Staff`
FROM `mldb`.`staff`
WHERE `idStaff` = $id" ;

$e=$_SESSION['Email'];

// This doesn't work - why? //
$q="UPDATE `mldbadmin`.`user`
SET `idStaff`='$id', `Staff`='$s'
WHERE `Email` = '$e' AND `idStaff` IS NULL";
$r=mysqli_query ($dbc, $q) ;

if (!$r)
{
die('Invalid query:' . mysqli_error($dbc));
}

else
{ header("location:confirmeduser.php") ; }
}

但是,当我运行此脚本时,我收到主题标题中显示的错误消息,我无法弄清楚为什么会发生这种情况 - 因为所有列都应该能够处理所有这些数据。

Invalid query:Data too long for column 'Staff' at row 1

我觉得我在这里错过了一些非常明显的东西,但我已经坚持了很长一段时间了。有没有人可以帮助我解决我做错的事情?非常感谢!

最佳答案

您正在尝试保存 SQL 查询文本,而不是执行它。查看您的脚本并假设您应该执行的 Staff 列的含义:

        $s = "SELECT DISTINCT `Staff`
FROM `mldb`.`staff`
WHERE `idStaff` = $id" ;

$e=$_SESSION['Email'];

// Look that your $s is inside ( .. )
$q="UPDATE `mldbadmin`.`user`
SET `idStaff`='$id', `Staff`=($s)
WHERE `Email` = '$e' AND `idStaff` IS NULL";

-即应用您的 SQL,作为子查询存储在 $s 中。另一个选项可能是单独执行 $s 查询。

提示:您应该注意将用户数据直接替换为 SQL,因为它很容易受到 SQL 注入(inject)的攻击。<​​/p>

关于php - 无效查询 : Data too long for column 'x' at row 'y' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19703946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com