0

私のSQL作業をPDOに移動しようとしていますが、次の致命的なエラーが表示されています: /home/content/58/9508458/html/pa/test. 12行目のphp

元のコード

<?php
$pdfreq=$_GET['dadi'];
include('config.php');
require('fpdf.php');
$link =mysql_connect($db_host,$username,$password);
mysql_select_db($db_name);



$update = "UPDATE mastertable SET pdfstatus =1 WHERE id_pk = $pdfreq";
mysql_query($update, $link);

交換された

<?php
$pdfreq=$_GET['dadi'];
include('config.php');
require('fpdf.php');
$link =mysql_connect($db_host,$username,$password);
mysql_select_db($db_name);



$sql = "UPDATE mastertable SET pdfstatus=?, WHERE id_pk=?";
$q = $link->prepare($sql);
$q->execute(array(1,$pdfreq));
4

2 に答える 2

1

$link変数は PDO オブジェクトではありません。以下を置き換える必要があります。

$link = mysql_connect($db_host,$username,$password);
mysql_select_db($db_name);

と:

$link = new PDO("mysql:dbname=$db_name;host=$db_host",$username,$password);
于 2012-07-02T17:36:42.663 に答える
0

PDOやMySQLiではなく、MySQLヘルパー関数を使用しています。

準備はあなたがしていることでは機能しません

構文をに変更する必要がありますi。MySQLiの末尾に注意してください。

<?php
$pdfreq=$_GET['dadi'];
$id = 1;
include('config.php');
require('fpdf.php');
$link = new mysqli($db_host,$username,$password, $db_name);

$sql = "UPDATE mastertable SET pdfstatus=? WHERE id_pk=?";
$q = $link->prepare($sql);

$q->bind_param("is", $id, $pdfreq);
$q->execute();

MySQLにはprepareメソッドがないため、値が1に設定されることはなく、次のように失敗します。Fatal error: Call to a member function prepare() on a non-object

PDOを使用する場合は、PHP.NetのPDOドキュメントを参照してください。

于 2012-07-02T17:47:48.557 に答える