【发布时间】:2017-07-19 09:35:07
【问题描述】:
所以我已经看到了一些类似的问题,但没有一个解决方案对我有用,所以我问这个。
这是代码:-
$sql = "SELECT sifra, IDartikli
FROM {$this->prefix}artikli
WHERE IDartikli = {$artikel_id};";
echo "$sql";
$stmt = $this -> db -> execute($sql);
print_r($stmt);
$table = $stmt->fetch(PDO::FETCH_ASSOC
//$table = $stmt;
// trenutne podatke vstavimo v tabelo artikli_stari
$sql = "INSERT INTO {$this->prefix}artikli_stari
(EAN,
IDartikli)
VALUES('{$table['sifra']}',
'{$table['IDartikli']}');";
$stmt = $this -> db ->prepare($sql);
$stmt->execute();
我在这里得到错误$table = $stmt->fetch();
我在 phpmyadmin 中尝试了 sql,它在那里工作正常,函数 print_r($stmt); 让我得到了这个
Array
(
[status] => OK
[id] =>
[count] =>
)
我不知道为什么它没有执行。 DB 类是必需的,适用于同一文件中的其他查询,如下所示
$row = $stmt->fetch(PDO::FETCH_ASSOC) 他们工作正常。我还尝试了PHP lint,它在我的代码中找不到错误。
【问题讨论】:
-
您的代码容易受到 SQL 注入的影响,而且您似乎错过了准备好的语句的要点 - 顺便说一句,第一条语句
$stmt = $this -> db -> execute($sql);不是prepared~ 它应该是吗? -
嗨。您找到解决方案了吗?
-
我只是做了很长的路 $stmt = $database->connection->prepare($sql); $stmt->execute([':articleId' => $artikel_id]);