У меня есть следующий код:
$statement = $mysqli->prepare("INSERT INTO `paypal_transactions` (`txn_id`, `payer_email`, `mc_gross`, `mc_currency`, `expires`, `userid`) VALUES (?, ?, ?, ?, " . (time() + 2678400) . ", ?)"); file_put_contents('error.txt', $mysqli->error . mysqli_error($mysqli)); $statement->bind_param('ssdsi', $txn_id, $payer_email, $payment_amount, $payment_currency, $userid); $statement->execute();
error.txt пуст каждый раз, и это то, что я вижу в файле error_log:
[02-Jul-2013 09:08:15 America/Denver] PHP Fatal error: Call to a member function bind_param() on a non-object in /home4/site/public_html/paypal.php on line 96
который относится к блоку кода выше.
Я в конце концов с этим, я пытался исправить это в течение нескольких часов, и это просто не сработает. Я не могу найти никаких проблем с моим SQL-запросом, и я теряю рассудок, пытаясь понять, что не так.
Кажется, $statement = $mysqli->prepare(..)
дает результат FALSE
поэтому $statement
не является объектом, и вы не можете использовать $statement->bind_param(..)
$statement = $mysqli->prepare("..."); if( $statement !== FALSE ) { $statement->bind_param(...); $statement->execute(); }
PHP – MySQLi – подготовьте
BTW: Вы проверили свой SQL-запрос непосредственно в базе данных путем копирования / вставки?
Не используйте MYSQL-ключевые слова в $ mysqli-> prepare, например: from, select и т. Д. Значит, имя вашего Datatables важно!