Еще одна маленькая ошибка (вероятно, очевидная) - PullRequest
0 голосов
/ 02 августа 2011

Я пишу сокращение URL.Я нуб, имейте ввиду;)

ОБНОВЛЕНО ПОСЛЕ ОТВЕТА № 1.ПОЛУЧИЛ НОВУЮ ОШИБКУ

Вот моя ошибка:

Unknown column 'Unknown column '' in 'field list''

Вот мой код

<?php
include("db.inc.php");

function is_min($url)
{

return(preg_match("/jbgc\.me/i", $url)) ? true : false; 

}


function gen_code()
{
$charset = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';    
return substr(str_shuffle($charset), 0, 6);
}



function exists($code) {
$code = mysql_real_escape_string($code);
$code_exists = mysql_query("SELECT COUNT(`url_id`) FROM `mini_shortener` WHERE   
`code`='$code' LIMIT 1") or die(mysql_error());
return (mysql_result($code_exists, 0) == 1) ? true : false;
 }



function shorten($url, $code){
$url = mysql_real_escape_string($url);
$code = mysql_real_escape_string($code);
mysql_query("INSERT INTO `mini_shortener` (`url`,`code`) VALUES('$url', '$code')")    
 or die (mysql_error());
return $code;


}

?>

1 Ответ

3 голосов
/ 02 августа 2011
SELECT COUNT(`url_id`) FROM `mini_shortener` WHERE     
 `code`='$code' LIMIT 1

INSERT INTO `mini_shortener` VALUES('', '$url', '$code')

Обратные галочки предназначены для имен таблиц / столбцов, а не для литералов. Заключите литералы (например, $code) в одинарные / двойные кавычки и используйте обратные галочки для имен столбцов. Или лучше, просто не используйте зарезервированные слова, и вы можете удалить галочки назад.

Кроме того, если первый столбец mini_shortener является первичным ключом AUTO_INCREMENT, просто не вставляйте его и укажите столбцы, которые вы хотите вставить, например:

INSERT INTO `mini_shortener` (`url`,`code`) VALUES('$url', '$code')

MySQL Doc об именах объектов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...