首先我想说的是,我非常不擅长这类事情,所以我的代码可能完全没用。
任务是创建一个系统,要求用户扫描两个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
分配给变量$userID1
和itemID
分配给$itemID2
。但在你的查询是错误的。查询已更新。
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);
让我看看你是否已经解决了这个问题。