如何修复预准备语句错误

时间:2015-12-01 18:18:58

标签: php mysql

我使用此语句将$category_id作为整数处理,而不是字符串。现在我查看了准备语句需要如何,并且对我来说似乎都是正确的,但是当我执行代码时,我得到了这个错误:

  

您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以便在第247行使用“?,?,?,?”附近的正确语法

这是我使用预备语句的函数:

function Post($data)
{
$title = ''; 
$post_text = '';
$category = '';

$db=new Database();

if(isset($_POST['post']))
{
$title = mysqli_real_escape_string($db->link, $data['title']);
$post_text = mysqli_real_escape_string($db->link, $data['post_text']);
$category = mysqli_real_escape_string($db->link, $data['category']);
}
$query= "INSERT INTO topic(category_id, user_id, title, body) 
      VALUES(?, ?, ?, ?)";
$stmt = $db->link->prepare($query);
$stmt->bind_param('iiss', $category, $_SESSION['id'], $title, $post_text);
$stmt->execute();
$insert_row = $db->insert($query);
}

现在虽然每个其他网站都说我的代码是正确的,但我仍然认为我的query不正确。

我该如何解决这个问题?

0 个答案:

没有答案