2016-01-07 86 views
0

我试图创建一个使用从以前的页面发布数据的INSERT语句,并将其绑定到声明错误绑定参数在PHP /库MySQLi

我的SQL INSERT语句是这样的:

// 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->准备 - 返回boolean变量。

它的正确用法:

<?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(); 
?>