2016-01-07 3 views
0

Я пытаюсь создать оператора вставки, используя данные, отправленные с предыдущей страницы и привязки их к утверждениюОшибка привязки параметра на PHP/MySQLi

My SQL вставки заявления заключается в следующем:

// insert new user 
$db = createConnection(); 
$insertquery="insert into comments (com, userid, comdate, blogpost) values (?,?,?,?)"; 
$inst=$db->prepare($insertquery); 
$inst->bind_param("sisi", $comment, $user, $today, $id); 
$inst->execute(); 
$inst->close(); 

Когда Я включаю отладки для PHP это ошибка я получаю

Fatal error: Call to a member function bind_param() on boolean in /blog/xcomment.php on line 29 

данные, которые пропускают в для bind_param является

Array ([comment] => My New Comment [blogid] => 1) 2016-01-07 12:31:50 

$user = $currentuser['userlevel']; 
$comment = $_POST['comment']; 
$id = $_POST['blogid']; 
$today = date("Y-m-d H:i:s"); 

ответ

1

Попробуйте использовать одиночные кавычки вместо:

$inst->bind_param('sisi', $comment, $user, $today, $id); 
-1

http://php.net/manual/en/mysqli-stmt.prepare.php

$ db-> подготовить - возвратный логическое значение.

это правильное использование:

<?php 
$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 

/* check connection */ 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$city = "Amersfoort"; 

/* create a prepared statement */ 
$stmt = $mysqli->stmt_init(); 
if ($stmt->prepare("SELECT District FROM City WHERE Name=?")) { 

    /* bind parameters for markers */ 
    $stmt->bind_param("s", $city); 

    /* execute query */ 
    $stmt->execute(); 

    /* bind result variables */ 
    $stmt->bind_result($district); 

    /* fetch value */ 
    $stmt->fetch(); 

    printf("%s is in district %s\n", $city, $district); 

    /* close statement */ 
    $stmt->close(); 
} 

/* close connection */ 
$mysqli->close(); 
?> 
Смежные вопросы