У меня есть PHP-скрипт, который собирает данные формы и вставляет некоторые из этих данных в базу данных MySQL. Я только заметил, что некоторые вставки/записи не были или никогда не создавались в базе данных. Я хотел бы написать процедуру повтора, которая, если вставка не повторит попытку 3 раза, а затем сделает ошибку пользователю.mysql insert error check
Точно так же вы можете увидеть мой код для БД и вставки, так что вы можете увидеть, что я НЕ орехи ...
mysql_connect($hostname,$username, $password) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());
Вот мой код вставки:
$query = "INSERT INTO contacts VALUES ('','$name','$address','$city','$state','$zip','$phone','$email_address','$arrive','$depart','$room','$found','$promocode','$message','$datetimestamp','$ip')";
mysql_query($query);
mysql_close();
I начинался с утверждения IF, затем в цикл, но терялся.
@Jay:
Так что-то вроде этого:
$conn = new mysqli($hostname, $username, $password, $dbname);
// check connection
if (mysqli_connect_errno())
{
exit('Connect failed: '. mysqli_connect_error());
}
$query = "INSERT INTO contacts VALUES ('','$name','$address','$city','$state','$zip','$phone','$email_address','$arrive','$depart','$room','$found','$promocode','$message','$datetimestamp','$ip')";
// Performs the $query on the server to insert the values
if ($conn->query($query) === TRUE) {
//echo 'users entry saved successfully';
}
else {
echo 'Error: '. $conn->error;
}
$conn->close();
Я уже проверка для инъекций до запроса вставки
Вместо re вы должны убедиться, что данные безопасны для вставки и не содержат символов '' 'например. Подготовленный оператор в PDO или mysqli автоматически разрешит это. – jeroen
Почему вы хотите повторить попытку? –
Пожалуйста, [не используйте 'mysql_ *' функции] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). Они больше не поддерживаются и [официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). Узнайте о [подготовленных заявлениях] (http://en.wikipedia.org/wiki/Prepared_statement) и используйте [PDO] (http://us1.php.net/pdo) или [MySQLi] (http: // us1.php.net/mysqli). [Запретить SQL Injection!] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) –