cari

Rumah  >  Soal Jawab  >  teks badan

Ketahui cara menggunakan pernyataan yang disediakan mysqli untuk operasi pangkalan data

<p>Saya cuba menggunakan pernyataan yang disediakan, tetapi kod di bawah tidak berfungsi. Saya menerima ralat berikut: </p> <blockquote> <p>Ralat maut: Memanggil fungsi bukan ahli objek laksanakan() pada baris 12 /var/www/prepared.php</p> </blockquote> <pre class="brush:php;toolbar:false;"><?php $mysqli = mysqli baharu("localhost", "root", "root", "test"); jika ($mysqli->connect_errno) { echo "Gagal menyambung ke MySQL:" $mysqli->connect_error; } $stmt = $mysqli->prepare("MASUKKAN KE DALAM pengguna (nama, umur) NILAI (?,?)"); //Sisipkan baris $stmt->execute(array('one',1)); // Masukkan baris lain dengan nilai yang berbeza $stmt->execute(array('two',1)); ?></pra> <p>Selain itu, adakah saya perlu menggunakan mysqli untuk pernyataan yang disediakan? Bolehkah sesiapa menunjukkan kepada saya contoh pernyataan lengkap yang disediakan, termasuk cantuman, sisipan dan pilihan, dan pengendalian ralat? </p>
P粉838563523P粉838563523505 hari yang lalu532

membalas semua(2)saya akan balas

  • P粉729436537

    P粉7294365372023-08-25 12:07:07

    Anda juga boleh menggunakan PDO yang saya suka. Malah, dalam contoh kod anda, anda nampaknya mengelirukan PDO dan Mysqli.

    $db = new PDO($dsn, $user, $pass);
    $stmt = $db->prepare("INSERT INTO users (name, age) VALUES (?,?)");
    $stmt->execute(array($name1, $age1));
    $stmt->execute(array($name2, $age2));

    Tidak seperti mysqli, anda tidak perlu memanggil fungsi bind yang berasingan, walaupun fungsi itu tersedia jika anda suka/mahu/perlu menggunakannya.

    Satu lagi perkara menarik tentang PDO dinamakan pemegang tempat, yang mungkin kurang mengelirukan dalam pertanyaan kompleks:

    $db = new PDO($dsn, $user, $pass);
    $stmt = $db->prepare("INSERT INTO users (name, age) VALUES (:name,:age)");
    $stmt->execute(array(':name' => $name1, ':age' => $age1));
    $stmt->execute(array(':name' => $name2, ':age' => $age2));

    balas
    0
  • P粉348088995

    P粉3480889952023-08-25 09:46:53

    Dari mysqli::prepareDokumen:

    bind_paramDokumentasi.

    Iaitu:

    $name = 'one';
    $age  = 1;
    
    $stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?,?)");
    
    // 绑定参数。我猜测是'string'和'integer',但请阅读文档。
    $stmt->bind_param('si', $name, $age);
    
    // *现在*我们可以执行
    $stmt->execute();

    balas
    0
  • Batalbalas