2013-10-15 117 views
0

我不明白爲什麼這不起作用。我知道這很簡單。我想從第二個查詢的值被放置到$newowner我得到一個數組字符串轉換錯誤。PHP mySQL結果到變量

$query = "INSERT INTO owners (fname, lname) VALUES ('default', 'default')"; 
mysqli_query($con, $query); 
echo $query; 
$query = "SELECT MAX(id) FROM owners"; 
$result = mysqli_query($con, $query); 
$newowner = mysqli_fetch_assoc($result); 
echo $newowner; 
+0

你閱讀mysqli_fetch_assoc的文檔?由於mysqli_fetch_assoc返回一個關聯數組,因此你得到一個字符串轉換錯誤的數組。 – user2759991

回答

1

這是因爲mysqli_fetch_assoc返回一個數組。你需要做的是獲得的價值出來的陣列,例如:

echo $newowner['MAX(id)']; 

您可以通過指定別名的列名,例如簡化它,在你的查詢:

select max(ID) as MaxID from owners 

然後你可以使用echo $newowner['MaxID']

+0

謝謝。這工作。 –

1

在這種情況下,$newowner是一個數組。嘗試將別名添加到您的查詢,如:

$query = "SELECT MAX(id) AS max_id FROM owners"; 
$result = mysqli_query($con, $query); 
$newowner = mysqli_fetch_assoc($result); 
echo $newowner['max_id']; 

,看看如何從一個關聯數組訪問的值或者幹​​脆做的就是以數字爲索引的時尚價值。

$newowner = mysqli_fetch($result); 
echo $newowner[0]; 
0

假設您的初始查詢插入正確,$newowner實際上是一個數組,因此您不能將它回顯出來。你能證明它是這樣的:

print_r($newonwer); 

但是,你會過得更好使用下列內容:

$query = "SELECT MAX(id) as ID FROM owners"; 
$result = mysqli_query($con, $query); 
$newowner = mysqli_fetch_assoc($result); 
echo $newowner['ID'];