MySQL与PDO的连接

时间:2014-06-04 07:45:20

标签: php mysql pdo

我有一个用MySQL制作的数据库(通过phpMyAdmin)。它持有2"笑话"。现在我想编辑笑话并在数据库中更新它们。

在这里我使用3个PHP脚本:

脚本:edit.php(在这里可以改变笑话)

脚本:connect.php(这将建立与数据库的连接)

脚本:update.php(需要设置您在数据库中所做的更改)

到目前为止

脚本:

修改

<?php

include ("connect.php");

if (!isset($_GET['id'])) {
    die('no id');
}

try
{
    $sql = 'SELECT * FROM joke WHERE id = :id';
    $stmt = $pdo->prepare($sql);

    //koppelen van parameters in de query string
    $stmt->bindValue(':id', intval($_GET['id']), PDO::PARAM_STR);

    $stmt->execute();
}

catch (PDOException $e) {
    die('Er is een probleem met het ophalen van joke: ' . $e->getMessage());
}

//ophalen van de gevonden rij
if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $id = $row['id'];
    $joketext = $row['joketext'];
    $jokeclou = $row['jokeclou'];
}

else {
    die('no row found');
}

echo <<<HTML
<form action="update.php" method="post">
    <input type="hidden" name="id" value="{$id}">
    <h1>Joke database</h1>
    <p>
    <textarea name="joketext" placeholder="vertel je grap">$joketext</textarea>
    </p>
    <p>
    <textarea name="jokeclou" placeholder="wat is de clou ?">$jokeclou</textarea>
    </p>
    <input type="submit" name="Verzenden">
</form>
HTML;

?>

连接

<?php 
try { 
$pdo = new PDO('mysql:host=127.0.0.1;dbname=ijdb', 'root', ''); 
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$pdo->exec('SET NAMES "utf8"'); 
} 
catch (PDOException $e) 
{ 
echo 'Er is geen connectie mogelijk met de MySQL database. '.$e->getMessage(); 
exit; 
} 
echo "Een database connectie is succesvol opgezet"; 
?> 

更新

<?php
 try { 
 // de query is set in a string variabele
 $sql = 'UPDATE joke SET jokedate=”2013-04-25” WHERE id = 1'; 
 // next the query wil me executed and rows will change 
 // de method exec will return the rows if they are succesfully executed 
 $aantalrijenaangepast = $pdo→exec($sql); 
 } 
 catch (PDOException $e) { 
 echo "Er is een fout opgetreden bij de update: ".$e→getMessage(); 
 exit(); 
 } 
 echo $aantalrijenaangepast. " rij(en) aangepast"; 
 ?>

此脚本中需要注意以下几点:

这一行:$ sql =&#39; UPDATE笑话SET jokedate =“2013-04-25”WHERE id = 1&#39;; 是此时不正确的行而且它需要更新信息。

数据库内容设置如下: databse content

要编辑笑话,请确保在网址后面添加2个ID中的1个,以打开包含编辑文本框的窗口(?id = 1)

enter image description here

1 个答案:

答案 0 :(得分:5)

你的update.php中有一些花哨的UTF8字符:

应为"

应为->

当您从网站复制和粘贴代码时,可能会发生这种情况。