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

时间:2014-06-18 07:38:59

标签: php mysql sql

首先,我想说我对这类东西非常不好,所以我的代码完全没用。

任务是创建一个系统,要求用户扫描两个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";

4 个答案:

答案 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 ....

您可能还想阅读此内容:Why shouldn't I use mysql_* functions in PHP?

答案 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。但在你的查询中它是错误的。查询现在已更新。

Mysql Manual

同时缺少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);

如果您已经解决了问题,现在就告诉我。