使用 pdo 准备好的语句将数据插入数据库,对我不起作用:
我使用这个功能:
public function get_number_of_matches(){
$stmt = $this->pdo->prepare("INSERT INTO `words`( `word_name`, `word_count`, `search_id`) VALUES (:word, :count,:searchID)");
$stmt->bindParam(':word', $word);
$stmt->bindParam(':count', $count);
$stmt->bindParam(':searchID', $search_id);
for($i=0;$i<count($this->words);$i++){
if(preg_match_all('/'.$this->words[$i].'/i', $this->text,$matches)){
$count=count($matches[0]);
$word=$this->words[$i];
$search_id=1;
$stmt->execute();
break;
}
}
return 0;
}
基本上,我尝试遍历这些值并将它们放入数据库..没有给出错误..没有任何东西进入数据库..为什么?
这是我连接到数据库的方式:
class DBConnection {
public static $connect;
public static function connect(){
if(!isset(self::$connect)){
try{
self::$connect=new PDO('mysql:host=localhost;dbname=tweeter', 'root', '');
}catch(Exception $ex){
echo $ex->getMessage();
}
}
return self::$connect;
}
}
更新 也..见这里:
我用不同的查询做同样的事情..但是当我尝试将对象属性放入变量时出现错误:
$tweet= $tweet->tweet ; $user=$tweet->tweeter_name; $链接= $tweet->链接;
这些变量进入查询:
$pdo= DBConnection::connect();
$stmt = $pdo->prepare("INSERT INTO `tweets`( `tweet`, `tweeter_name`, `link`, `date`, `search_id`) VALUES (:tweet, :tweeter_name, :link, :date, :search_id)");
$stmt->bindParam(':tweet', $tweet);
$stmt->bindParam(':tweeter_name', $user);
$stmt->bindParam(':link', $link);
$stmt->bindParam(':date', $date);
$stmt->bindParam(':search_id', $search_id);
我收到这样的错误:
注意:尝试在第 36 行的 C:\xampp\htdocs\Twitter\demo.php 中获取非对象的属性
注意:尝试在第 37 行的 C:\xampp\htdocs\Twitter\demo.php 中获取非对象的属性
注意:尝试在第 38 行的 C:\xampp\htdocs\Twitter\demo.php 中获取非对象的属性
我可以打印属性..但是将它们分配给那些绑定变量时..上述错误突然出现
我也得到这个:
致命错误:未捕获的异常 'PDOException' 并带有消息 'SQLSTATE[23000]:完整性约束违规:C:\xampp\htdocs\Twitter\demo.php:40 中的 1048 列 'tweeter_name' 不能为空 堆栈跟踪:#0 C :\xampp\htdocs\Twitter\demo.php(40): PDOStatement->execute() #1 {main} 在第 40 行的 C:\xampp\htdocs\Twitter\demo.php 中抛出
我改为这样检查:
$tweet= "111111"; // $tweet->tweet ;
$user= "22222222"; // $tweet->tweeter_name;
$link= "3333333"; // $tweet->link;
$date= "444444";
它起作用了..出于某种原因它讨厌那些对象属性?!?
这应该作为输入:
RT @OrganicLiveFood:科学家警告#EPA Over #Monsanto's #GMO Crop Failures & Dangers #prop37 #labelGMO #yeson37 http://t.co/2XhuVxO8 Doumastic TweetCaster for iOS Mon, 19 Nov 2012 20:40:55 +0000 RT @ OrganicLiveFood:科学家就#Monsanto 的#GMO 作物歉收和危险警告#EPA #prop37 #labelGMO #yeson37 http://t.co/2XhuVxO8
但它不...?!?