Я пытаюсь сделать подготовленный mysqli оператор, и по какой-то причине, по крайней мере, строки превращаются в 0 (нули).MySQLi готовые заявления, вставляющие нуль
Пример:
Таблица
id - int, PK
name - varchar(45)
код
if ($stmt = $mysqli->prepare("INSERT INTO test (name) VALUES(?)")){
$stmt->bind_param('s',$name);
$name="Test1";
$stmt->execute();
} else {
echo "prepare failed";
}
При запуске этого, вновь вставляется строка в таблице будет иметь значение 0 для имени. Что я делаю не так? Я не могу использовать PDO, потому что сервер, на котором это происходит, не имеет его доступного.
Вы должны объявить '$ name' * до *, используя его, например. – ceejayoz
Положите '$ name =" Test1 ";' before 'bind_param()' – furas
@coreno Я думаю, ваша проблема в другом месте. возможно, в том, как вы позже извлекаете строки. Рассмотрите возможность создания короткого/минимального полностью автономного сценария (создайте таблицу + вставить, затем выберите), который можно запустить и продемонстрировать проблему. Вероятно, вы обнаружите проблему в процессе создания этого сценария. – goat