Ich versuche, einen neuen Eintrag in meine Datenbank mit einer eindeutigen ID einzufügen. Irgendwo in meinem Code ist ein Fehler, aber ich kann es nicht finden. Kannst du bitte helfen?PHP mysql Bericht mit eindeutiger ID einfügen
Autoincrement ist keine Option
$newConversationID = uniqid();
$checkID = $DBcon->query("SELECT * FROM tbl_conversations WHERE conversation_id=$newConversationID");
$countID = $checkID->num_rows;
while($countID) {
if ($countID==0) {
$DBcon->query("INSERT INTO tbl_conversations (conversation_id,user_id, date) VALUES('$newConversationID','$fromID',UNIX_TIMESTAMP())");break;
} else {
$newConversationID = uniqid();
$checkID = $DBcon->query("SELECT * FROM tbl_conversations WHERE conversation_id=$newConversationID");
$countID = $checkID->num_rows;
}
}
Sie sind bereits eine API verwenden, die ** vorbereitete Anweisungen ** mit beschränktem variablen Eingang unterstützt, sollten Sie parametrisierte Abfragen mit Platzhalter (Prepared Statements) nutzen zu schützen Ihre Datenbank gegen [SQL-injection] (http://stackoverflow.com/q/60174/)! Beginnen Sie mit [mysqli :: prepare() '] (http://php.net/mysqli.prepare) und [mysqli_stmt :: bind_param()'] (http://php.net/mysqli-stmt .bind-param). – Qirel
@Qirel In diesem Fall macht es keinen Unterschied, wie die Daten im Skript generiert werden. – RiggsFolly
Während das stimmt, ist es eine gute Angewohnheit zu adoptieren. Bereite alles vor, was eine Variable ist. – Qirel