【发布时间】:2015-09-19 10:09:42
【问题描述】:
我在准备 $query 时出错。
这是几行:
$query="INSERT INTO bm(title,season) VALUES(:title, :season)";
$stmt = $mysqli->prepare($query);
//$stmt->bind_param("ss", $title, $season);
$stmt->execute(array(':title' => $title, ':season' => $season));
我把bind_param 的行放在//
我看到其他可以解决但错误大致相同:
致命错误:在非对象上调用成员函数 bind_param()
所以,我想到了我的查询,但它太简单了,我看不清楚了。它快把我逼疯了。 :-/ 我还在 $query 行之前使用 echo 测试了 var $title 和 $season 以确保,就像这样:
echo $title." et ".$season;
但没有错,价值观还可以。这些是字符串 var。任何帮助将不胜感激。谢谢。
这是完整的代码:
<?php
include("connexion.php");
// Get vars from previous form
//$id="";
$title = isset($_POST['title']) ? $_POST['title'] : "";
$season = isset($_POST['season']) ? $_POST['season'] : "";
// Testing vars
if (empty($titre) && empty($saison))
{
echo '<font color="red">Must be filled...</font>';
}
// Vars ok : could be inserted in "bm" table
else
{
// Protect - inject SQL
$title=$mysqli->real_escape_string(strip_tags($title));
$season=$mysqli->real_escape_string(strip_tags($season));
// Test
echo $title." et ".$season;
// Insert method
$query="INSERT INTO bm(title,season) VALUES(:title, :season)";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("ss", $title, $season);
$stmt->execute(array(':title' => $title, ':season' => $season));
// Insert ok ?
if ($stmt) {
echo "Insert ok.";
}
else {
echo "Insert failed !";
}
}
//Close connexion
$mysqli->close();
?>
【问题讨论】: