2013-10-13 2 views
1

У меня очень плохой день обучения php. Может кто-нибудь сказать мне, почему это не сработает? У меня есть ошибки вызова функция члена() о неприменении объекта объявлений неопределенных переменных в строке 23 здесь код:Вызов функции-члена prepare() для не-объекта и переменной undefined

<?php 
// connect to the MySQL server 
$conn = new mysqli('localhost', 'username', 'password', 'Org_db'); 

// check connection 
if (mysqli_connect_errno()) { 
exit('Connect failed: '. mysqli_connect_error()); 
} 
//for insert user info into users table columns 
$id = ''; 
$name = 'Bob Grundy'; 
    $pass = md5("secure"); 
    $email = '[email protected]'; 
    $reg_date = date("m/d/Y"); 
//line 23 
if (!$stmt = $mysqli->prepare("INSERT INTO `users` (`id`, `name`, `pass`, `email`, 
`reg_date`)  VALUES (?,?,?,?,?)")) { 
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error; 
} 
/* Prepared statement, bind and execute */ 


if (!$stmt->bind_param("issss", $id, $name, $pass, $email, $reg_date)) { 
echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error; 
} 

if (!$stmt->execute()) { 
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error; 
} 
?> 
+0

Вы не объявляете никакого значения для $ mysqli. –

+0

просто замените '$ mysqli' на' $ conn' – user2092317

ответ

1

Вы определили $conn = new mysqli(.., но после того, как вы использовали !$stmt = $mysqli->prepare(".. здесь, $mysqli переменные должны быть изменены на $conn например:

if (!$stmt = $conn->prepare("INSERT INTO `users` (`id`, `name`, `pass`, `email`, 
`reg_date`)  VALUES (?,?,?,?,?)")) { 
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error; 
} 
+0

спасибо Джейсону, вы, ребята, наверняка избавитесь от головных болей !! – user2042111

+0

@ user2042111 Вы должны принять этот ответ, чтобы закрыть вопрос. –

Смежные вопросы