2013-04-24 2 views
-1
$sql = ("INSERT INTO `Lcode` (lid, sid) 
VALUES (".$a.", ".$b.")" 
); 

вышеуказанную крышки = VARCHAR и $ а = VIB (в данном случае) выше SID = INT и $ Ь = 3 (опять-таки в данном случае)INSERT INTO и ЗНАЧЕНИЯ не работает

но, похоже, не вставляет его в базу данных?

Я проверил мое подключение к серверу, что в порядке.

и я могу либо обновление с кодами, как это:

$sql = ("INSERT INTO Lcode SET lid='".$b."'"); 

и подобное UPDATE.

Я действительно надеюсь, что вы сможете мне помочь в этом.

подробнее

$a = strtolower ($resa['lid']); 
$b = strtolower ($resb); 

$ Реза [ 'крышка'] = переменная, что я получаю от сервера MySQL :: он возвращается правильно, когда пытаются повторить $ в

$ RESB это вызов, который я делаю для URL с помощью $ _GET :: он также возвращается правильно.

у меня есть некоторые проблемы, фигурирующие в этом и нужна помощь ...

ценю вашу помощь

+2

Вы используете [в ** устаревшей ** базы данных API] (http://stackoverflow.com/q/12859942/19068) и должен использовать [современную замену] (http://php.net/manual/en/mysqlinfo.api.choosing.php). Вы также уязвимы для [SQL-инъекций] (http://bobby-tables.com/) **, что современный API упростит [защиту] (http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php). – Quentin

ответ

0

Попробуйте, как это его более проще,

INSERT INTO `table_name` SET `lid` = $somevalue, `sid` = $somevalue2 
+0

это сработало отлично thx ... а также JW 웃 для напоминания об инсталляции sql ... ive забыл все об этом :-D – Jokb

+0

Почему вы не используете PDO и читаете этот поток http: // stackoverflow.com/questions/866860/mysql-versus-pdo – Shushant

1

Чтобы ответить на ваш вопрос прямо, вам нужно обернуть значение lid с одиночной кавычки, так как это строка буквальный.

$a = strtolower($resa['lid']); 
$b = strtolower($resb); 
$sql = "INSERT INTO Lcode (lid, sid) VALUES ('$a', $b)"; 

Как Замечание, запрос уязвим с SQL Injection, если значение (s) переменными пришло извне. Пожалуйста, ознакомьтесь с приведенной ниже статьей, чтобы узнать, как ее предотвратить. Используя PreparedStatements, вы можете избавиться от использования одинарных кавычек вокруг значений.

+0

$ sql = ("INSERT INTO' Lcode' (lid, sid) VALUES ('$ a', $ c) "); он, похоже, не работает ... моя БД не обновляется с новой крышкой/sid – Jokb

0

Вы забыли процитировать ваши строковые значения. Это:

$sql = ("INSERT INTO `Lcode` (lid, sid) 
VALUES (".$a.", ".$b.")" 
); 

Должно быть:

$sql = ("INSERT INTO `Lcode` (lid, sid) 
VALUES ('".$a."', '".$b."')" 
); 

Чтобы узнать такого рода проблем, это очень полезно, чтобы распечатать весь запрос перед его выполнением, это должно дать вам подсказку о возможном синтаксисе ошибка.

1

Первым является отсутствием одинарных кавычек, например:

$sql = "INSERT INTO `tbl_name` (`field1`, `field2`) VALUES ('$a','$b')"; 

Попробуйте повторить весь запрос перед отправкой его на сервер. Также используйте информацию об ошибке из SQL-сервера, чтобы решить эту проблему, например, с помощью MySQLi:

echo "Error message: %s\n" . mysqli_error(); 
Смежные вопросы