Я пытаюсь создать подготовленный оператор mysqli, где я импортирую таблицы из базы данных, подключенной к odbc, в базу данных mysql, я получаю эту ошибку с 106-столбцовым табличным запросом.Где ошибка запроса запроса mysqli?
У вас возникла ошибка в синтаксисе SQL; проверьте, что соответствует вашей версии сервера MySQL для правильного синтаксиса для использования рядом с '? (ID, column1, column2, колонка3, column4, 'в строке 1"
Когда эхо из запроса здесь ...
INSERT INTO? (ID, column1, column2, column3, column4, ... 106 полных столбцов ...) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?, ?,?,?,?,? , & Alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha ;, & alpha ;, & alpha;, & & Alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha ;, & , & Alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha;, & alpha ;, & alpha ;, & alpha;, & ?,?,?,?,?,?,?,?,?,?,?,?,?,?, ?,?)
$sql = "SELECT * FROM $table WHERE $key = '$acct'";
$link = getODBCConnection();
$result = odbc_do($link, $sql);
$data = array();
while ($row = odbc_fetch_array($result)) {
//store all query rows as array
array_push($data, $row);
}
//insert into mysql table of the same name
//get column count from first row
$columns = count($data[0]);
$params = str_repeat(" ?,",$columns);
$params = rtrim($params,',');
$types = str_repeat("s",$columns+1);
$fields = implode(", ", array_keys($data[0]));
$sql = "INSERT INTO ? ($fields) VALUES ($params) ON DUPLICATE KEY UPDATE";
echo $sql."<br>";
$link = getSalesConnection();
$stmt = $link->prepare($sql);
var_dump($link->error);
foreach ($data as $row) {
$stmt->bind_param($types, $table, implode(", ",array_values($row)));
$stmt->execute();
}
Я попытался это с помощью стандартных bind_param, а также с использованием метода call_user_func_array(). Я пробовал ссылаться на строки параметров и имена столбцов без эффекта. Если была ошибка с моими типами bind_param, я не должен был иметь ошибку в инструкции подготовки, должен ли я? Но есть некоторые проблемы с SQL, идущими к команде подготовки, которую я не могу определить. Пожалуйста помоги!