У вас есть ошибка в синтаксисе SQL...?

//Может ли кто-нибудь сказать мне, где ошибка в ниже sql-запросе.

$sql = "insert into $table ($columns) values ($values)";

/Это дает мне эту ошибку

У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL> для правильного синтаксиса, используемого рядом ')' в строке 1

2 ответа

Вам нужно будет проверить, нет ли стартовой и конечной запятой в переменных $columns или $values. Кроме того, просто убедитесь, что поместите соответствующие кавычки вокруг столбцов и значений отдельно.

public function insert($data, $table) {
$columns = "";
$values = "";
foreach ($data as $column=>$value)
{ $columns .= "'" . $column . "', "; $values .= "'" . $value . "', "; } $columns = substr($columns, 0, strlen($columns)-2); $values = substr($values, 0, strlen($values)-2); $sql = "insert into ".$table." (".$columns.") values (".$values.")"; mysql_query($sql) or die (mysql_error()); return mysql_insert_id(); }


Используйте 'backticks для зарезервированных слов MYSQL. Ваш запрос должен быть следующим.

$sql = "insert into '$table' ('$columns') values ('$values')";

licensed under cc by-sa 3.0 with attribution.