SQLSTATE: Bilangan argumen tidak sah: Bilangan pembolehubah ikatan tidak sepadan dengan bilangan token, baris 102
P粉386318086
2023-08-17 20:03:40
<p>Saya menerima ralat SQLSTATE[HY093]: Bilangan pembolehubah ikatan tidak sepadan dengan bilangan token, di bawah baris 102 ulasan.php: </p>
<pre class="brush:php;toolbar:false;"><?php
/*** Kelas untuk memproses artikel*/
Komen kelas
{
// Atribut
/*** ID artikel @var int dalam pangkalan data*/
awam $id = null;
/*** @var int Tarikh artikel akan/telah diterbitkan*/
awam $publicationDate = null;
/*** @var string Tajuk penuh artikel*/
awam $title = null;
/*** @var string kandungan HTML artikel*/
public $content = null;
/*** ID artikel @var int dalam pangkalan data*/
awam $articleid = null;
/*** Tetapkan sifat objek menggunakan nilai dalam tatasusunan yang disediakan
*
* Nilai atribut assoc @param*/
fungsi awam __construct( $data=array() ) {
if ( isset( $data['id'] ) ) $this->id = (int) $data['id'];
if ( isset( $data['publicationDate'] ) ) $this->publicationDate = (int) $data['publicationDate'];
if ( isset( $data['title'] ) ) $this->title = preg_replace ( "/[^.,-_'"@?!:$ a-zA-Z0-9()]/", "", $data['title'] );
if ( isset( $data['content'] ) ) $this->content = $data['content'];
if ( isset( $data['articleid'] ) ) $this->articleid = (int) $data['articleid'];
}
/*** Tetapkan sifat objek menggunakan nilai POST borang edit
*
* @param assoc membentuk nilai POST*/
kedai fungsi awamFormValues( $params ) {
// simpan semua parameter
$this->__construct( $params );
// Parsing dan simpan tarikh keluaran
if ( isset($params['publicationDate']) ) {
$publicationDate = meletup ( '-', $params['publicationDate'] );
if ( count($publicationDate) == 3 ) {
senarai ($y, $m, $d ) = $publicationDate;
$this->publicationDate = mktime (0, 0, 0, $m, $d, $y);
}
}
}
fungsi statik awam getById( $id ) {
$conn = PDO baharu( DB_DSN, DB_USERNAME, DB_PASSWORD );
$sql = "SELECT *, UNIX_TIMESTAMP(publicationDate) AS publicationDate FROM comments WHERE id = :id";
$st = $conn->prepare( $sql );
$st->bindValue( ":id", $id, PDO::PARAM_INT );
$st->execute();
$row = $st->fetch();
$conn = null;
if ( $row ) return new Comment( $row );
}/*** Kembalikan semua (atau julat tertentu) objek artikel dalam pangkalan data
*
* @param int pilihan Bilangan baris untuk dikembalikan (lalai adalah semua)
* Lajur pilihan rentetan @param mengikut artikel yang diisih (lalai ialah "publicationDate DESC")
* @return Array|false Tatasusunan yang mengandungi dua elemen: hasil => tatasusunan, senarai objek artikel totalRows => jumlah bilangan artikel*/
fungsi statik awam getList( $art=1, $order="publicationDate DESC", $numRows=10000 ) {
$conn = PDO baharu( DB_DSN, DB_USERNAME, DB_PASSWORD );
$sql = "SELECT SQL_CALC_FOUND_ROWS *, UNIX_TIMESTAMP(publicationDate) AS publicationDate FROM comments WHERE articleid = :art
PESANAN OLEH " . mysql_escape_string($order) . " LIMIT :numRows";
$st = $conn->prepare( $sql );
$st->bindValue( ":art", $art, PDO::PARAM_INT );
$st->execute();
$list = array();
manakala ( $row = $st->fetch() ) {
$komen = Komen baharu( $baris );
$senarai[] = $komen;
}
}
/*** Masukkan objek artikel semasa ke dalam pangkalan data dan tetapkan atribut IDnya.*/
sisipan fungsi awam () {
// 插入文章
$conn = PDO baharu( DB_DSN, DB_USERNAME, DB_PASSWORD );
$sql = "INSERT INTO comments ( publicationDate, title, content, articledid ) NILAI ( FROM_UNIXTIME(: publicationDate), :title, :content, :articleid )";
$st = $conn->sediakan ( $sql );
$st->bindValue( ":publicationDate", $this->publicationDate, PDO::PARAM_INT );
$st->bindValue( ":tajuk", $ini->tajuk, PDO::PARAM_STR );
$st->bindValue( ":content", $this->content, PDO::PARAM_STR );
$st->bindValue( ":articleid", $this->articleid, PDO::PARAM_STR );
$st->execute();
$this->id = $conn->lastInsertId();
$conn = null;
}
/**
* 在数据库中更新当前的文章对象。*/
kemas kini fungsi awam() {
// 更新文章
$conn = PDO baharu( DB_DSN, DB_USERNAME, DB_PASSWORD );
$sql = "KEMASKINI ulasan SET publicationDate=FROM_UNIXTIME(:publicationDate), title=:title, summary=:summary, content=:content, articleid=:articleid,imageExtension=:imageExtension WHERE id = :id";
$st = $conn->sediakan ( $sql );
$st->bindValue( ":publicationDate", $this->publicationDate, PDO::PARAM_INT );
$st->bindValue( ":tajuk", $ini->tajuk, PDO::PARAM_STR );
$st->bindValue( ":content", $this->content, PDO::PARAM_STR );
$st->bindValue( ":articleid", $this->articleid, PDO::PARAM_STR );
$st->bindValue( ":id", $this->id, PDO::PARAM_INT );
$st->execute();
$conn = null;
}
/*** Padamkan objek artikel semasa daripada pangkalan data.*/
fungsi awam padam() {
// 删除文章
$conn = PDO baharu( DB_DSN, DB_USERNAME, DB_PASSWORD );
$st = $conn->prepare ( "DELETE FROM comments WHERE id = :id LIMIT 1" );
$st->bindValue( ":id", $this->id, PDO::PARAM_INT );
$st->execute();
$conn = null;
}
}
?></pra>
<p><br /></p>
Anda tidak mengikat semua ikatan di sini
Anda mengisytiharkan pengikatan yang dipanggil :numRows, tetapi anda sebenarnya tidak mengikat apa-apa padanya.