1

次の作業コードを変換しました。

<?php
    include('config.php');
    $link = mysql_connect($db_host, $username, $password);
    mysql_select_db($db_name);

    $id= $_POST["uniqi"];
    $comments= $_POST["comments"];
    $comments= mysql_real_escape_string($comments);
    $comments = strip_tags($comments);

    $update = "UPDATE mastertable SET comments = '$comments' WHERE id_pk= '$id'";
    mysql_query($update, $link);
    mysql_close();
    header('Location: ccccc.com/pabrowser/… Updated');
?>

PDO へ:

<?php
    $id= $_POST["uniqi"];
    $comments= $_POST["comments"];
    $conn = new PDO("mysql:host=$db_host;dbname=$db_name", $username, $password);

    $sql = "UPDATE mastertable SET comments=?    WHERE id_pk=?";
    $q = $conn->prepare($sql);
    $q->execute(array($comments, $id));

    header('Location: ccccc.com/pabrowser/… Updated');
?>

それは私に与えた

致命的なエラー: メッセージ「SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)」のキャッチされない例外 'PDOException' in /home/content/ 58/9508458/html/pabrowser/comsumcompro.php:4 スタック トレース: #0 /home/content/58/9508458/html/pabrowser/comsumcompro.php(4): PDO->__construct('mysql:host=;dbn ...', NULL, NULL) #1 {main} が /home/content/58/9508458/html/pabrowser/comsumcompro.php の 4 行目でスローされる

4

4 に答える 4

4

あなたは忘れてしまったinclude('config.php');

于 2012-07-08T16:39:58.627 に答える
3

$db_hostまたはの$db_name値が間違っているか、無効な資格情報を提供しています。

于 2012-07-08T16:38:17.693 に答える
1

追加してください

include('config.php');
于 2012-07-08T16:46:17.333 に答える
0

接続文字列が間違っているか、MySQL サーバーが応答していません。try ... catch次のような構造を使用します。

include('config.php');

$id = $_POST["uniqi"];
$comments = $_POST["comments"];
try {
    $conn = new PDO("mysql:host=$db_host;dbname=$db_name", $username, $password);
}
catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

「接続に失敗しました」というメッセージが表示されれば、何が問題なのかがわかります。

于 2012-07-08T17:05:52.737 に答える