[英]PHP Insert Into Returns Null on MySQL Query Attempt
我在使用PHP insert into語句向MYSQL表添加新行時遇到了一些困難。 我已經授予遠程用戶所有權限,並且我能夠查看表格。 但是,當我嘗試插入表時,我也得到A 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。 在這種情況下,由於PHP 5.3+中對mysql擴展的棄用,我強烈建議使用MySQLi。
通過將代碼修改為:可以更改代碼(並使其更安全):
<?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
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.