我在查询服务期间遇到了一个问题,即在PHP中的在线数据库中添加一行。行的添加工作正常。我从网址获取用户ID和书籍ID,并获取该书的名称和用户放入我添加到我的第三个和最后一个表的行。 当我得到名字,把它们放在一个数组中,json编码然后回显它,它的工作原理。但是,当我将它们放入行中时,它会打印资源ID#3和资源ID#4而不是名称。 有什么想法吗?
这是我的服务:
<?php
$con = mysql_connect("localhost","root","root");
$userid=$_GET['uid'];
$id = $_GET['bookid'];
$type = $_GET['type'];
$zero = '0';
$one = '1';
$date = date("Y-m-d");
$arr = array();
if (!$con)
{
die('Could not connect: ' . mysql_error());
echo "error connection";
}
mysql_select_db("Jineel_lib",$con) or die("Could not select database");
$bkName = mysql_query("SELECT Name from books where ID='".$id."'");
$userName = mysql_query("SELECT Name from people WHERE User_ID='".$userid."'");
while($obj = mysql_fetch_object($userName))
{
$arr[] = $obj;
}
echo json_encode($arr);
if($type == 'borrow')
{
$query="UPDATE books set Availablity = '".$zero."' where ID= '".$id."' ";
mysql_query($query) or die (" borrow operation failed due to query 1");
$query1="INSERT into borrowed (BookID, BookName, BorrowerID, BorrowedName, DateBorrowed, Extended, Returned) values('".$id."','".$bkName."','".$userid."','".$userName."','".$date."','".$zero."','".$zero."')";
mysql_query($query1) or die (" borrow operation failed to due query 2");
echo "borrow success";
}
else if($type=='return')
{
$query="UPDATE books set Availablity = '".$one."' where ID= '".$id."' ";
mysql_query($query) or die (" return operation failed");
$query1="UPDATE borrowed set Returned = '".$one."' where BookID= '".$id."' ";
mysql_query($query1) or die (" return operation failed 1");
echo "return success";
}
else
echo "invalid parameters";
?>
先谢谢你
答案 0 :(得分:0)
您实际上并未在此处检索userName值:
$userName = mysql_query("SELECT Name...
$userName
只是查询返回的结果资源对象。您稍后使用mysql_fetch_object
,这是合适的,但是您尝试在插入查询中使用实际结果资源:
$query1="INSERT into borrowed ...
它会转换为您看到的字符串。相反,您需要使用$obj->Name
(将结果提取到$obj
,并且可能只有一个结果)。如果有多个可能的结果,则必须循环执行。
听取有关您问题的所有评论。