2017-02-18 19 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

ありがとう、その作業! –

関連する問題