PHP / MySQL.无法更新数据:查询为空


PHP / MySQL. Could not update data: Query was empty

首先我想说的是,我非常不擅长这类事情,所以我的代码可能完全没用。

任务是创建一个系统,要求用户扫描两个ID, userID和itemID。扫描成功后,我希望将这些值传输到PHP文档中。这里我想运行一个MySQL查询,它将更新userID的值,其中itemID与数据库匹配。

所以我的问题是,我得到这个消息后运行我的查询:userID:202 itemID:8204无法更新数据:查询为空。我的数据库仍然是空的。

我认为问题是查询不能读取$_GET变量。但是我没有线索,所以请帮助我,谢谢!

这是我的表单:

<form id="checkin" name="checkin" action="test.php">
<input type="button" onclick="checkIn()" value="Check in Item">
</form>    
函数:

<script>
function checkIn(){ 
var userID=parseInt(prompt ("Scan userid"), 10);
var itemID=parseInt(prompt ("Scan itemid"), 10);
if(userID!=null && itemID!=null){ 
window.location.href= "http://localhost/webapp/test.php?userID=" + userID + "&itemID=" + itemID; 
alert ("working so far userID:"+ userID + " --- itemID:" + itemID);             
 }
}
</script>

最后的PHP:

$con = mysql_connect("localhost", "root", "", "book1");
$db  = mysql_select_db('book1');
if (isset($_GET["userID"]) && isset($_GET["itemID"])) {
    $userID1 = (int)$_GET["userID"];
    $itemID2 = (int)$_GET["itemID"];
    $test    = "userID: ".$_GET["userID"]." "."itemID: ".$_GET["itemID"];
    echo $test;
}
if (!$con) {
    die('Could not connect: '.mysql_error());
}
$upd = mysql_query('UPDATE INTO booking SET userID ="$userID" WHERE ID ="$itemID');
$retval = mysql_query($upd, $con);
if (!$retval) {
    die('Could not update data: '.mysql_error());
}
echo "Updated data successfully'n";

无效参数@ mysql_connect()

$con=mysql_connect("localhost", "root", "") or die ('Connection failed' . mysql_error());
$db = mysql_select_db('book1',$con);

UPDATE INTO需改为UPDATE ....

你也有userID分配给变量$userID1itemID分配给$itemID2。但在你的查询是错误的。查询已更新。

Mysql手册

WHERE ID ="$itemID'也缺少引号

$upd = mysql_query("UPDATE booking SET userID ='$userID1' WHERE ID ='$itemID2'", $con);

注:不建议使用mysql_*函数,而是使用mysqli_*

您的DB连接字符串可能看起来是mysqli_。在mysql_中,您不希望将DB Name指定为参数。

$con=mysql_connect("localhost", "root", "", "book1");

应该是

$con=mysql_connect("localhost", "root", "");

UPDATE查询中添加了不必要的INTO

参考手册试试这个,

UPDATE booking SET ....

UPDATE INTO booking SET ....

你可能也想读这个:为什么我不应该在PHP中使用mysql_*函数?

根据手册纠正连接,并纠正Update语法

检查PHP连接手册

$con=mysql_connect("localhost", "root", "") OR die('Could not connect');
$db = mysql_select_db('book1',$con);
if(isset($_GET["userID"]) && isset($_GET["itemID"])){
$userID1= (int) $_GET["userID"];
$itemID2= (int) $_GET["itemID"];
$test = "userID: ". $_GET["userID"] . " " . "itemID: ". $_GET["itemID"];
echo $test;
}
$upd = mysql_query("UPDATE booking SET userID='".$userID."' WHERE ID=$itemID");
$retval = mysql_query( $upd);
if(! $retval){
    die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully'n";
}

@user3751216在这一行生成的"syntax"问题的错误

$upd = mysql_query("UPDATE booking SET userID='".$userID."' WHERE ID=$itemID");
$retval = mysql_query( $upd);

如果你把你的代码像这样,它应该解决SQL语法的问题

$upd = ("UPDATE booking SET userID='".$userID."' WHERE ID=$itemID");
$retval = mysql_query( $upd);

让我看看你是否已经解决了这个问题。