Что может вызвать это? Код следующим образом:Почему PHP mysqli подготовил оператор, но вставляя все значения NULL?
$m = new mysqli($host,$user,$pass,$db);
if(mysqli_connect_errno()) die('Connect failed: ' . mysqli_connect_error());
$PrepSQL = "INSERT INTO Products (" . implode(',',$this->cols) . ") VALUES (";
$PrepSQL .= '?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
$stmt = $m->prepare($PrepSQL);
if(!$stmt) die('Could not prepare: ' . $m->error . "\n$PrepSQL\n");
$ret = $stmt->bind_param('isissssddssssssssssssssssssssssssisssssss',
$contents[0], ... bunch of these here ...);
if(!$ret) die('bind_param failed: ' . $m->error);
Затем в цикле у меня есть:
$contents = explode('|',$NL); // NL is pipe delimited data
print_r($contents);
if(!$stmt->execute()) die("Statement failed: " . $m->error);
И сценарий не останавливается, но каждое значение равно нулю в MySQL. Большинство типов - это строки, и я бы предположил, что они, по крайней мере, заполнятся, даже если числовые типы ошибочны. Значения print_r
правильно печатаются.
Линия 4 заканчивается неправильным символом кавычки. – Phil
Это была опечатка после пасты, когда я пытался форматировать. – Tim
Вы уверены, что '$ this-> cols' содержит правильные имена столбцов? – kijin