SQL Вставка не работает - PullRequest
       4

SQL Вставка не работает

2 голосов
/ 26 февраля 2012

Почему эта простая вставка не работает?Единственное не вставленное значение - это $ streamName. Если я удаляю это значение из кода, все работает, вот код:

 $userId= $_SESSION['kt_login_id'];
 $streamName= $_GET['streamName'];
$streamDuration= $_GET['streamDuration'];
$recorderId= $_GET['recorderId'];

$con = mysql_connect("localhost","wwwmeety_staff","xxxxxx");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

 mysql_select_db("wwwmeety_ourstaff", $con);

mysql_query("INSERT INTO recordedvideos (user_id, streamName, record_duration, recorder_id)
VALUES ($userId, $streamName, $streamDuration, $recorderId)");


mysql_close($con);

и экспорт MySQL

CREATE TABLE IF NOT EXISTS `recordedvideos` (
  `record_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) DEFAULT NULL,
  `streamName` text,
  `record_duration` text,
  `recorder_id` text,
  PRIMARY KEY (`record_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Ответы [ 3 ]

4 голосов
/ 26 февраля 2012

Вы забыли заключить строку в кавычки.

  mysql_query(
         "INSERT INTO recordedvideos 
         (user_id, streamName, record_duration, recorder_id) VALUES 
         ($userId, '$streamName', '$streamDuration', '$recorderId')"
             );

Но во избежание SQL-инъекций предпочтительнее такой подход: http://php.net/manual/en/function.mysql-query.php

$query = sprintf("INSERT INTO recordedvideos 
    (user_id, streamName, record_duration, recorder_id) VALUES 
    ($userId, '%s', '%s', '%s')",
    mysql_real_escape_string($streamName),
    mysql_real_escape_string($streamDuration),
    mysql_real_escape_string($recorderId)
);

mysql_query( $query );
1 голос
/ 26 февраля 2012

Вы должны enclose string fields with single quotes

INSERT INTO recordedvideos (user_id, streamName, record_duration, recorder_id)
VALUES ($userId, '$streamName', '$streamDuration', '$recorderId')
1 голос
/ 26 февраля 2012

mysql_query ("INSERT INTO Зарегистрированные видео (user_id, streamName, record_duration, Recorder_id) VALUES ($ userId, '$ streamName', '$ streamDuration', '$ recorderId')");

Поместить одинарные кавычкивокруг значений типа string.

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