2017-02-18 50 views
0

該問題= 在我的代碼中,我得到了一個人的數據庫的id,然後我拿它,然後我把它放在數據庫中的另一張桌子上。 所以第一本我得到的ID從數據庫中:注意:數組到字符串轉換。沒有數組在代碼

$patientid = mysqli_query($connection, "SELECT id FROM patient WHERE  `naam` = '$naam' AND `adres` = '$adres'"); 

然後我取,

$patientid1 = mysqli_fetch_assoc($patientid); 

然後我把它放在另一張表:

$toevoegen = mysqli_query($connection, "INSERT INTO factuur (`soort`, `hoelang`, `titel`, `omschrijving`, `datum_aangemaaktfactuur`, `patient_id`, `artsid`) 
     VALUES ('$soort', '$hoelang', '$titel', '$omschrijving', '$datum', '$patientid1', '$artsid1')"); 

然後當我運行代碼我得到這個通知:注意:數組到字符串的轉換。 我該如何解決這個問題?我看了其他問題,但他們有相同的錯誤,但代碼不同。我甚至沒有在我的代碼中的數組! 謝謝

ps:如果我用一個數字替換$ patientid1它完美的作品。

+0

您需要使用'$ patientid1 ['id']' –

+1

請不要使用此代碼。它對所有類型的sql注入都是開放的。 – Oliver

+0

@Oliver我是新手,我們將學習如何在明年安全編程。 –

回答

2

mysqli_fetch_assoc返回一個關聯數組,其中所選字段作爲鍵和列值作爲值。

你應該如下

$patientRow = mysqli_fetch_assoc($patientid); 
$patientId = $patientRow['id']; 

請記住,對於非唯一的結果,你應該遍歷整個結果集像

while ($patientRow = mysqli_fetch_assoc($patientid)) { 
    $patientId = $patientRow['id']; 
    // other actions here 
} 

最後但並非最不重要的,要注意$naam$naam修改代碼:使用prepared statement反而肯定會更安全

+0

謝謝,它的工作! –

相關問題