Я хотел бы знать, выполняю ли я правильную запись таблицы, кажется, что она не работает.
while($n != 1) { $randstring = "live_".RandomString(); echo "<br>".$username."<br>"; echo $randstring."<br>"; $idcheck = mysql_query("SELECT * FROM streamer_ids WHERE streamer_id='".$randstring."'"); //check for matching random strings if (!(mysql_num_rows($idcheck)>0)) { $n=1; //It has found a random string that does not match. } } //if it has reached this far, it has a unique id. Now that id is being written to the database. $temp = mysql_query("INSERT INTO streamer_ids (username,streamer_id,premium) VALUES(".$username.",".$randstring.","0")"); $temp->closeCursor();
Имейте в виду, что последняя часть плохо заражена, и мне нужна помощь.
Кажется, вам не хватает разделителей строк в инструкции insert.
Т.е.
$temp = mysql_query("INSERT INTO streamer_ids (username,streamer_id,premium) VALUES('".$username."','".$randstring."','0')");
Кроме того, я не знаю, откуда исходит значение $ username, но вы, вероятно, должны его дезинфицировать, чтобы предотвратить инъекции SQL. Т.е. работает на нем.
вы можете поместить свою логику вставки в строки row_count> 0, также вы получаете ошибки, потому что вы генерируете запрос с использованием конкатенации строк, а не параметров. Используйте параметры, и он будет работать =) Ваш текущий код просто опасен.
Также ваш оператор select * может быть заменен выбором count (*), который сделает вашу логику более ясной, потому что вы будете запрашивать только требуемые данные из db, в этом случае, есть ли строки или нет.