gpt4 book ai didi

php - 插入具有默认值的 Mysql 行

转载 作者:行者123 更新时间:2023-11-29 13:17:39 25 4
gpt4 key购买 nike

我需要认真帮助我的 sql 语句。首先,由于某种原因,bio 和 user_image 的默认值没有插入。其次,我的发言时断时续。有时插入,有时不插入。我需要一些聪明人的帮助。提前致谢。这是我的代码:

$query = "INSERT INTO users VALUES ('{$_POST['display_name']}', '{$_POST['email']}','{$_POST['password']}','active','{$_POST['first_name']}','{$_POST['last_name']}',DEFAULT,DEFAULT)";
mysql_query($query);

echo '<META HTTP-EQUIV="Refresh" Content="0; URL=success.php">';
exit;

我知道,我搞砸了,我做这个项目是为了了解有关数据库的更多信息。这是我的数据库结构:

Field      Type                         Null       Default  
id int(11) No
username varchar(255) No
email varchar(255) No
password varchar(255) No
status enum('active', 'inactive') No
first_name text No
last_name text No
bio varchar(305) No HEY! theres nothing here yet ....Complete your bio if you want to get rid of this lame placeholder text. Use this space on your page to tell the internet a little bit about yourself. Or just make everyone feel bad by listing all of your amazing accomplishments! I prefer the latter.
user_image varchar(305) No user_profile.jpg

**已更改但仍然无法正常工作:

$query = "INSERT INTO users(username, email, password, first_name,last_name)
VALUES ({$_POST['display_name']}, {$_POST['email']}, {$_POST['password']}, {$_POST['first_name']}, {$_POST['last_name']})";

最佳答案

您的查询从根本上来说是不安全的 - 它可能会被利用来插入恶意语句,并且噗!您的整个数据库都会消失。你真的真的需要阅读this SO thread并使用 PDO 或 mysqli 代替,或者如果这绝对不是一个选项,至少使用 mysql_real_escape_string .

话虽如此,由于您没有进行任何转义,因此任何带有 ' 的字符串它会破坏你的查询。假设 $_POST['display_name']设置为Frank's Restaurant 。您的查询将以 INSERT INTO users VALUES ('Frank's Restaurant' 开头,MySQL 会认为查询在 Frank 之后错误停止。 ,因为后面跟着 ' .

此外,正如 Glavić 所建议的,您需要为 id 添加一个字段,或者手动指定字段。

关于php - 插入具有默认值的 Mysql 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21270316/

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