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

标签 php mysql

我在使用 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/

相关文章:

php - 有没有比 VALUES($var1, $var2, $var3) 更好的方法向 MySQL 查询插入值?

php - MySQL 哪里有很多多对多的匹配项?

php - 如何在 symfony2 中设置小数点

php - Mysql Php登录问题

mysql DISTINCT 关键字不显示不同的行

php - 混淆了 JavaScript 和 PHP 的时区

php - 我需要使用 PHP 转义 javascript 函数的字符串参数的帮助

mysql - SQL查询从薪水表中找到第N个最高薪水

mysql - 检索加入日期距今天不到 15 天的行

mysql - SQL 尝试写入表时遇到问题。值大于特定精度