gpt4 book ai didi

php - 从 GET 表单插入值后无法更新用户表

转载 作者:行者123 更新时间:2023-11-30 01:00:19 25 4
gpt4 key购买 nike

我目前正在为高中类(class)进行测验。

我需要从表单中获取数据,然后插入,之后它应该更新插入的行,并使用测验获得的分数。

我目前使用以下代码,但我没有在成员(member)数据库中获取积分更新。

$conn=  mysql_connect($servername,$username,$password)or die(mysql_error());
mysql_select_db("kiggeded_marketingmix",$conn);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");

$q1="SELECT point FROM questions WHERE dif = '1'";
$q2="SELECT point FROM questions WHERE dif = '2'";
$q3="SELECT point FROM questions WHERE dif = '3'";
$q4="SELECT point FROM questions WHERE dif = '4'";
$q5="SELECT point FROM questions WHERE dif = '5'";
$q6="SELECT point FROM questions WHERE dif = '6'";
$q7="SELECT point FROM questions WHERE dif = '7'";
$q8="SELECT point FROM questions WHERE dif = '8'";
$q9="SELECT point FROM questions WHERE dif = '9'";
$q10="SELECT point FROM questions WHERE dif = '10'";
$q11="SELECT point FROM questions WHERE dif = '11'";
$q12="SELECT point FROM questions WHERE dif = '12'";
$q13="SELECT point FROM questions WHERE dif = '13'";
$q14="SELECT point FROM questions WHERE dif = '14'";
$q15="SELECT point FROM questions WHERE dif = '15'";
$q16="SELECT point FROM questions WHERE dif = '16'";
$q17="SELECT point FROM questions WHERE dif = '17'";
$q18="SELECT point FROM questions WHERE dif = '18'";
$q19="SELECT point FROM questions WHERE dif = '19'";
$q20="SELECT point FROM questions WHERE dif = '20'";
$q21="SELECT point FROM questions WHERE dif = '21'";
$q21="SELECT point FROM questions WHERE dif = '22'";

$point= $q1 + $q2 + $q3 + $q4 + $q5 + $q6 + $q7 + $q8 + $q9 + $q10 + $q11 + $q12 + $q13 + $q14 + $q15 + $q16 + $q17 + $q18 + $q19 + $q20 + $q21 + $q22;

$sql="INSERT INTO members
(uid, username, first_name, last_name, q2, q3, q4, q5, q6,
q7, q8, q9, q10, q11, q12, q13, q14, q15, q16, q17, q18,
q19, q20, q21, q22) VALUES
('$_GET[uid]', '$_GET[username]', '$_GET[first_name]', '$_GET[last_name]', '$_GET[q2]',
'$_GET[q3]', '$_GET[q4]', '$_GET[q5]', '$_GET[q6]', '$_GET[q7]', '$_GET[q8]',
'$_GET[q9]', '$_GET[q10]', '$_GET[q11]', '$_GET[q12]', '$_GET[q13]', '$_GET[q14]',
'$_GET[q15]', '$_GET[q16]', '$_GET[q17]', '$_GET[q18]', '$_GET[q19]', '$_GET[q20]',
'$_GET[q21]','$_GET[q22]')";

$sql2="UPDATE members SET point='$point' WHERE uid='$_GET[uid]'";

$result=mysql_query($sql,$conn) or die(mysql_error());
$result=mysql_query($sql2,$conn) or die(mysql_error());

header("Location: http://kiggede.dk/quiz/?tak=1");

最佳答案

你的 SELECT 墙毫无用处。将它们减少为:

SELECT point FROM questions WHERE dif BETWEEN 1 AND 22;

在使用任何结果数据之前,选择查询必须像任何其他查询一样执行和获取。上面的代码定义了字符串并执行字符串的添加。

不要用php计算,让数据库决定是否添加,取决于应该更新(或不更新)的内容。

最后:在任何情况下都不要将 $_GET 值直接连接到查询字符串。您必须首先转义它们,以便为您的数据库提供所需的安全性(看看 mysql_real_escape_string() )。

作为对 future 的提示:我建议在任何情况下都使用准备好的语句。我还建议使用 MySQLi (或更好的 PDO )进行数据库交互。 PHP MySQL 扩展已随 PHP 5.5 弃用。

关于php - 从 GET 表单插入值后无法更新用户表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20193775/

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