首先,我想说我对这类东西非常不好,所以我的代码完全没用。
任务是创建一个系统,要求用户扫描两个ID,userID和itemID。扫描成功后,我希望将这些值传输到PHP文档。 在这里,我想运行一个MySQL查询,它将更新itemID与数据库匹配的userID值。
所以我的问题是我在运行查询后收到此消息: 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";
答案 0 :(得分:0)
您的数据库连接字符串可能看起来为mysqli_
。在mysql_
中,您不希望将DB Name
指定为参数。
$con=mysql_connect("localhost", "root", "", "book1");
这应该是,
$con=mysql_connect("localhost", "root", "");
您在INTO
查询中添加了不必要的UPDATE
。
Refer the manual 试试这个,
UPDATE booking SET ....
代替,
UPDATE INTO booking SET ....
答案 1 :(得分:0)
根据手册更正您的连接,并更正Update
语法
检查PHP CONNECTION手册
$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";
}
答案 2 :(得分:0)
@ 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);
P.S。不建议使用mysql_ *函数,而是使用mysqli _ *
答案 3 :(得分:0)
@ user3751216在此行生成的“语法”问题的错误
$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);
如果您已经解决了问题,现在就告诉我。