2009-10-08 6 views
0

Я пытаюсь сохранить данные в базе данных, и я получаю сообщение об ошибке, которое я никогда не видел до У меня есть подозрение, что оно имеет какое-то отношение к сортировке db, но я не уверен, что неправильно,Сохранение базы данных mysql с использованием php и mysqli

вот запрос:

$query1 = "INSERT INTO scape.url (url,normalizedurl,service,idinservice) VALUES (url, normalizedurl, 4, 45454)"; 
$query = "INSERT INTO scape.url (url, normalizedurl, service, idinservice) VALUES (" 
      .$sql->real_escape_string($this->url)."," 
      .$sql->real_escape_string($this->normalizedUrl)."," 
      .$sql->real_escape_string($this->service)."," 
      .$sql->real_escape_string($this->idInService).")"; 
$result = $sql->query($query); 
echo $sql->error; 

сообщение об ошибке я получаю:

у вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом с «: //www.something/here/here/here/12345,httpwwwsomthighere» в строке 1

сортировки базы данных для этого полей utf8-general-ci и полевой тип - varchar 255

любые идеи по этому поводу?

ответ

1

Если вы делаете это так, вам все равно придется ставить кавычки вокруг строк (url и normalizedurl). Это проблема синтаксиса, о которой идет речь.

Это печально, это не рекомендуемый способ передачи параметров с помощью mysqli. Весь смысл mysqli в том, что он имеет параметризацию запроса. Например:

$mysqli = new mysqli($host, $user, $password, $database); 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit; 
} 
$sql = <<<END 
INSERT INTO scape.url (url,normalizedurl,service,idinservice) 
VALUES (?, ?, ?, ?) 
END; 
$stmt = $mysqli->prepare($sql); 
if ($stmt === false) { 
    printf("Error executing %s: %s\n", $sql, $stmt->error); 
    exit; 
} 
$stmt->bind_param('ssii', $this->url, $this->normalizedUrl, 
    $this->service, $this->idInService); 
$stmt->execute(); 
+0

Спасибо за то, Клетуса , если я мог я бы поп «вы только что заработал GURU значок» на экране :) как всегда ваши ответы детализированы и точны –

Смежные вопросы