2010-06-02 2 views
2

здесь мой код-Ошибка при вставке данных в PHP

$sql = "INSERT INTO tblpin ('pinId', 'ownerId', 'usedby', 'status') VALUES "; 
for($i=0; $i<sizeof($pin); $i++) 
{ 
if ($i>0) 
    { 
    $sql .= ", "; 
    } 
$sql .= "('$pin[$i]', '$ownerid', 'Free', '1')"; 
} 
$sql .= ";"; 

echo $sql; 

mysql_query($sql); 
if(mysql_affected_rows() > 0) 
{ 
    echo "done"; 
} 
else 
{ 
    echo "Fail"; 
} 

выход: ** INSERT INTO tblpin ('pinId', 'ownerId', 'usedby', 'status') VALUES ('13837927', 'admin', 'Free', '1'), ('59576082', 'admin', 'Free', '1'); Сбой

почему не вставляя значения при $ SQL запроса является правильным?

+0

было бы полезно, если и указать ошибку msg его поколение my sql_error() – nik

+0

Если вы скопируете и вставляете код, выделите его после вставки и нажмите маленькую кнопку в редакторе, в которой все 01010 ..., которые будут правильно отступят все 4 пробела, чтобы они отображались как код. – Erik

+0

@Erik Я выделяю свой код, но первая первая строка отображается как код, который не остается. – nectar

ответ

3

здесь

INSERT INTO tblpin ('pinId', 'ownerId', 'usedby', 'status') VALUES 

вы должны использовать `` или ничего не используют для определения таблиц и строк, но вы не можете использовать «» вместо того, чтобы таким образом право запроса будет:

INSERT INTO `tblpin` (`pinId`, `ownerId`, `usedby`, `status`) VALUES ('13837927', 'admin', 'Free', '1'), ('59576082', 'admin', 'Free', '1'); 

OR:

INSERT INTO tblpin (pinId, ownerId, usedby, status) VALUES ('13837927', 'admin', 'Free', '1'), ('59576082', 'admin', 'Free', '1'); 
+0

, но если я не генерирую SQL-запрос динамически, но передавая его как есть, он работает нормально ?? Зачем. – nectar

3

Не указывайте имена столбцов между кавычками.

+3

Используйте обратные ссылки для имен столбцов - т.е. '\' pidID \ ', \' ownerId \ '' – Erik

0
INSERT INTO tblpin (pinId, ownerId, usedby, status) VALUES (13837927, 'admin', 'Free', 1), (59576082, 'admin', 'Free', 1); 
Смежные вопросы