Получить параметр url и вставить в базу данных

Попытка вставить в базу данных, введя значение в URL-адресе, но с трудностями вставить в базу данных:

Вот URL:

http://student.cs.hioa.no/~s180343/updatedb.php?verdi=22 

Вот код:

 <?php $dbhost = "MYSQL-SERVER"; $dbuser = "USERNAME"; $dbpass = ""; $verdi = $_GET['verdi']; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('Could not connect: ' . mysql_error()); } $sql = "INSERT INTO test ('id') VALUES (`$verdi`)"; mysql_select_db('s180350'); $retval = mysql_query( $sql, $conn ); if(! $retval ) { die('Could not enter data: ' . mysql_error()); } echo "Entered data successfully\n"; mysql_close($conn); ?> 

Используйте кавычки вокруг ваших строковых значений. Используйте тики вокруг имен столбцов. У вас есть это в обратном направлении:

 $sql = "INSERT INTO test ('id') VALUES (`$verdi`)"; 

shjould be

 $sql = "INSERT INTO test (`id`) VALUES ('$verdi')"; 

FYI, вы широко открыты для SQL-инъекций

Вы делаете обратное, добавляя '' для имени столбца и “ для значения

 $sql = "INSERT INTO test ('id') VALUES (`$verdi`)"; 

должно быть

 $sql = "INSERT INTO test (`id`) VALUES ('$verdi')"; 

Начните использовать инструкцию подготовки или, по крайней мере, ниже, после того, как определено conn.

 $verdi = mysql_real_escape_string($verdi); 

пожалуйста, не забудьте защитить все пользовательские данные в запросах sql. см. вики-версию SQL

Проблема с вашим кодом неверна в использовании котировок. См. Отредактированный код:

 $conn = mysql_connect("MYSQL-SERVER", "USERNAME", $dbpass); if(! $conn ) { die('Could not connect: ' . mysql_error()); } mysql_select_db('s180350'); $retval = mysql_query( "INSERT INTO test ('id') VALUES ('".mysql_real_escape_string($_GET['verdi'])"')", $conn ); if(! $retval ) { die('Could not enter data: ' . mysql_error()); } echo "Entered data successfully\n"; 

PS: Не используйте ресурсы, задавая переменные, которые вам не нужны.