gpt4 book ai didi

PHP 插入在 MySQL 查询尝试中返回 Null

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

我在使用 PHP insert into 语句向 MYSQL 表添加新行时遇到一些困难。我已向远程用户授予所有权限,并且我能够很好地查看表。但是,当我尝试插入表时,我也得到 NULL 返回。有什么建议吗?

这是代码:

<?php
$ID1=$_REQUEST["ID1"];
$ID2=$_REQUEST["ID2"];
$ID3=$_REQUEST["ID3"];
$ID4=$_REQUEST["ID4"];
$ID5=$_REQUEST["ID5"];
$return = "0";

$link = mysql_connect('my-remote-server', 'root', 'pwd');
if (!$link) {echo $return; $end ="1";}

$db_selected = mysql_select_db($ID3, $link);
if (!$db_selected) {echo $return; $end ="1";}

if ($end != "1")
{
if (($ID5 == "1") && ($ID4 == "%%%"))
{
$check = mysqli_query($link,"INSERT INTO Students (NetID, GroupID)
VALUES ('%s', '%s')",
mysql_real_escape_string($ID1),
mysql_real_escape_string($ID2));
echo var_dump($check);
echo "1";

}
}

最佳答案

就像我们在最初的评论中所说的那样,坚持使用单一扩展:mysql 或 MySQLi。在这种情况下,我强烈建议使用 MySQLi,因为 PHP 5.3+ 中已弃用 mysql 扩展。

您的代码可以通过修改为以下内容来更改(并使其更安全):

<?php
$ID1=$_REQUEST["ID1"];
$ID2=$_REQUEST["ID2"];
$ID3=$_REQUEST["ID3"]; // database name apparently ?
$ID4=$_REQUEST["ID4"];
$ID5=$_REQUEST["ID5"];
$return = "0";

$db = new mysqli('my-remote-server', 'root', 'pwd', $ID3);

if($db) {
if (($ID5 == "1") && ($ID4 == "%%%")) {
$statement = $db->prepare("INSERT INTO Students (NetID, GroupID) VALUES (?, ?)"); // prepare the query, this prevents SQL injection
$statement->bind_param('ss', $ID1, $ID2); // this tells MySQLi that the 2 variables are strings and should be properly escaped to fit in the query (automatically)
$statement->execute(); // run the actual query
}
}

关于PHP 插入在 MySQL 查询尝试中返回 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21537661/

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