gpt4 book ai didi

mysql - 使用 PDO 的资源链接标识符?

转载 作者:行者123 更新时间:2023-11-30 00:23:10 25 4
gpt4 key购买 nike

(PDO 新手,一般 DB 经验有限):)

我正在项目中改用 PDO。

即使数据被转储到数据库..还是有一个奇怪的“警告”..显示了我试图使用的表的合并..(另一个我没有)...SELECT()。 .etc 即使我试图 INSERT()..etc..

使用 NON-PDO 方法效果很好(这似乎有点奇怪)..

示例:

include("../_include/db_forms.php");       
mysql_query("INSERT INTO $tablename (timestamp, fullname, email, formcode, ipaddress, alldata) VALUES ('" . date("YmdHis") . "','" . mysql_real_escape_string($_POST['name']) . "','" . mysql_real_escape_string($_POST['email']) . "','" . $formcode . "','" . $_SERVER['REMOTE_ADDR'] . "','" . mysql_real_escape_string($allData) . "')");

^ 没有警告/数据转储到数据库就好了

经过一番搜索/询问后...它看起来像是 CMS 的另一个开放数据库连接(用于页面/页眉/页脚包含文件的其他方面...等)正在用于其他查询,(或反之亦然)..这导致了警告/问题。

有人告诉我添加资源链接标识符可以解决这个问题...

现在我明白它是什么..以及为什么使用它(多个数据库..这是对应该使用/打开什么数据库的引用..等)

但是..我不太确定如何实现一个..特别是使用PDO方法。

这是我的 PDO 方法/代码:

require_once("../_include/db_pdo_fulllog.php"); //just a .php file with DEFINE()'s for DB connection details
// new DB routine PDO approach //
$sql = "INSERT INTO $tablename (timestamp, fullname, email, formcode, ipaddress, alldata) VALUES (?,?,?,?,?,?)";
try {
$conn = new PDO("mysql:host=" . DBSERVER . ";dbname=" . DBNAME, DBLOGIN, DBPASSWORD);
$stmt = $conn->prepare($sql);
//$stmt = $conn->prepare("INSERT INTO fulllog(timestamp, fullname, email, formcode, ipaddress, alldata) VALUES (?,?,?,?,?,?)");
//timestamp
$ts = date('Y-m-d H:i:s');
$stmt->bindParam(1, $ts);
//name
$stmt->bindParam(2, $_POST['name']);
//email
$stmt->bindParam(3, $_POST['email']);
//formcode
$stmt->bindParam(4, $formcode);
//ip address
$stmt->bindParam(5, $_SERVER['REMOTE_ADDR']);
//all data
$allData = $_POST['session_title'] .' '. $_POST['session_type'] .' '. $_POST['description'] .' '. $_POST['goals'] .' ' . $_POST['faculty'] .' '. $_POST['chapter'];
$stmt->bindParam(6, $allData);

//execute built statement
$stmt->execute();
}
catch(PDOException $e) {
echo $e->getMessage();
die;
}

如何向此添加资源链接标识符...以停止使用多个数据库的警告/错误?

谢谢。

编辑:

(自从被请求以来)

错误/警告消息:

Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in /usr/www/users/xxxxorg/xxxx.org/admincms/_includes/class.now_cms.php on line 126 Err (Table 'xxxx_forms.fulllogContent' doesn't exist) in query: SELECT n.NodeName, n.ContentId, n.ParentId, n.NodeOrder, n.ParentNode, n.ContentTitle, n.ContentType, n.Status, n.ShowOnNav, n.ShowNav, n.ShowOnSitemap, n.ForceSSL, n.TargetWindow, n.ResourceUrl, n.ShortTitle, n.Keywords, n.Description, n.CCount, n.COrderField, n.COrder, COALESCE(t.TemplateBody, dt.TemplateBody) as Template, COALESCE(ct.TemplateBody, dt.TemplateBody) as ChildTemplate, n.UserGroups, n.Comments, n.Sticky, IF(md.MetaId IS NULL, 0, 1) as HasMetaData FROM fulllogContent n LEFT JOIN fulllogTemplate t ON n.Template=t.TemplateId LEFT JOIN fulllogTemplate ct ON n.ChildTemplate=ct.TemplateId LEFT JOIN fulllogTemplate dt ON dt.TemplateId=dt.TemplateId AND dt.Status=2 LEFT JOIN fulllogSection s ON n.SectionId=s.SectionId LEFT JOIN fulllogMetaDefine md ON s.SectionId=md.SectionId WHERE n.Status=1 AND n.PubDate <= NOW() AND (n.ExpDate >= NOW() OR n.ExpDate = '0000-00-00 00:00:00') ORDER BY CONCAT(IF(n.ParentId=0, '', '/'), n.ParentNode), n.NodeOrder

再次..我的表格不是“xxxx_forms.fulllogContent”,但实际上是:“xxxx_forms.fulllog”

大多数其他内容甚至不适用于我的表/数据库..(我也没有执行 SELECT.. 我正在执行 INSERT)..

所以它(以某种方式)仍然打开/使用 CMS 数据库..并且正在与我想要的数据库合并/混合。

要重新迭代..数据正在转储到数据库...但页面不会刷新/解析并显示此警告/错误..

最佳答案

PDO 对象本身就是这样一个“链接标识符” - 因此,您不需要任何其他东西。

因此,您的问题与 PDO 无关。

要获得有关特定错误消息的帮助,您必须完整且准确地发布该特定消息,而不是用模糊的术语进行描述。

关于mysql - 使用 PDO 的资源链接标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23073648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com