PHP和PDO问题
所以我是PDO的初学者,在做一些看似简单的事情时遇到了困难。我无法更新我的表,而且它不会给我带来任何错误。看一看:PHP和PDO问题,php,pdo,Php,Pdo,所以我是PDO的初学者,在做一些看似简单的事情时遇到了困难。我无法更新我的表,而且它不会给我带来任何错误。看一看: <?php $host = 'localhost'; $dbname = 'postGal'; $user = 'user'; $pass = 'pass'; $DB = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass); $DB->setAttribute( P
<?php
$host = 'localhost';
$dbname = 'postGal';
$user = 'user';
$pass = 'pass';
$DB = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$DB->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
catch(PDOException $e) {
echo "Reported Error";
file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
}
class person {
public $f_name;
public $l_name;
function __construct($f,$l) {
$this->f_name = $f;
$this->l_name = $l;
}
}
$person = new person('John','Doe');
$STMT = $DB->("INSERT INTO users (f_name, l_name) value (:f_name, :l_name)");
$STMT->execute((array)$person);
?>
此外,我知道表和所有内容都正常工作,因为我可以使用mysql或mysqli执行相同的语句。谢谢 您必须接受可能在try块中抛出异常的代码块,以捕获抛出的异常 它还必须在insert语句中指出值而不是值 你也完全错用了事先准备好的陈述。有关一些简单示例,请参阅手册。例如,您必须在某个时刻调用prepare方法,而您的数组强制转换非常奇怪,不确定您将执行什么操作
我在这里也闻到了巨魔的气味。也许
catch
想要成为设置错误处理程序$DB->(“INSERT
忽略了prepare
方法。最后,我认为您不能像这样将对象强制转换为数组。也许您希望获取对象变量
,并将其操纵成所需的数组(以冒号开头的键)但是,对象的意义是什么?只使用数组。我看不出有任何理由认为这是一个trolling尝试。这只是一个糟糕的代码。为什么会有否决票?尽管我说它太坏了,看起来像是一个trolling尝试,但我确实修复了它的大部分并给出了建议。OP可能不是一个trolling,但你之前的答案有点苛刻侧边。请保持良好。嗯……没有巨魔。只是按照教程做一些修改。