我使用MySQL语法编写了一个CMS脚本.
我想用PDO语法替换MySQL语法.有人可以帮我做这和向我解释如何做到这一点?
这是脚本中的代码.
<?php
$querytemp = mysql_query("select * from main_setting") or die (mysql_error());
$row = mysql_fetch_object($querytemp);
include "inc/upcenter_block.php";
echo "
<div class='headmenu'>$row->news1</div>
<div class='bodymenu'>
<p>".nl2br($row->news)."</p>
</div> ";
include "inc/downcenter_block.php";
?>
Run Code Online (Sandbox Code Playgroud)
Ali*_*lim 10
首先,如果你想改变mysql_*为PDO
您将需要更改脚本中的所有代码,而不仅仅是一个不能正常工作的代码
如果你要将代码从mysql_*更改为PDO
您将不得不使用PDO更改与数据库的连接
这里是一个样本:
// here we set the variables
$dbhost = "localhost";
$dbname = "testcreate";
$dbuser = "root";
$dbpass = "mysql";
// here we are using ( try {} ) to catch the errors that will shows up and handle it in a nicer way
try {
$db = new PDO('mysql:host='.$dbhost.';dbname='.$dbname.';charset=utf-8', ''.$dbuser.'', ''.$dbpass.'');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Error : <br>' . $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)
// here we set the varible for the connection = then starting the cennction with new POD();
$db = new PDO('mysql:host='.$dbhost.';dbname='.$dbname.';charset=utf-8', ''.$dbuser.'', ''.$dbpass.'');
Run Code Online (Sandbox Code Playgroud)
// here we set an Attribute to handle the errors
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// you dont need to use it in our case because we already catching the error and handling it in out way
Run Code Online (Sandbox Code Playgroud)
// here we catch the error then handling it by echo a msg and then we used
// $e->getMessage(); to get the error msg that should be throwing in the page
catch (PDOException $e) {
echo 'Error : <br>' . $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)
既然我们完成了连接,我将向您展示如何查询和获取表格
// this is how we will use query
$qr = $db->query()
// and this is how to fetch it by taking the query variable and use the arrow then fetch
$ro = $qr->fetch()
Run Code Online (Sandbox Code Playgroud)
我将为您展示一个代码示例
$querytemp = mysql_query("select * from main_setting") or die (mysql_error());
$row = mysql_fetch_object($querytemp);
Run Code Online (Sandbox Code Playgroud)
我们会改变这个
$querytemp = $db->query("select * from main_setting");
$row = $querytemp->fetch(PDO::FETCH_OBJ);
Run Code Online (Sandbox Code Playgroud)
所以现在你可以使用$row->newsPDO
现在您可以轻松地将代码更改为PDO