Php PDO wordpress查询
我一直在 错误:SQLSTATE[42000]:语法错误或访问冲突:1064您 SQL语法有错误;检查相应的手册 您的MySQL服务器版本需要使用正确的语法 请帮忙!=] 我已经检查了phpmyadmin中的这个文本查询是否有效Php PDO wordpress查询,php,database,wordpress,pdo,Php,Database,Wordpress,Pdo,我一直在 错误:SQLSTATE[42000]:语法错误或访问冲突:1064您 SQL语法有错误;检查相应的手册 您的MySQL服务器版本需要使用正确的语法 请帮忙!=] 我已经检查了phpmyadmin中的这个文本查询是否有效 SELECT * FROM `wp_customgravityall` WHERE (`time` >= '2015-09-01 00:00:00' AND `time` <= '2015-09-13 23:59:59') ORDER BY `wp
SELECT *
FROM `wp_customgravityall`
WHERE (`time` >= '2015-09-01 00:00:00' AND `time` <= '2015-09-13 23:59:59')
ORDER BY `wp_customgravityall`.`time` DESC
选择*
来自“wp_customyall”
其中(`time`>='2015-09-01 00:00:00'和`time`您正试图用FROM?
准备好的语句中的规则是,不能绑定表/列
您可以选择表名、为表名分配变量或使用安全列表
将表名设置为变量的示例:
$table = "table_name";
然后
或者,如果您的表包含MySQL会抱怨的字符,例如空格或连字符,则在表名周围加上记号:
SELECT FROM `$table`
在您的情况下,要使用的变量是$table\u name
- 然后,您需要相应地重新调整绑定
我发现的另一件事是,您在这里使用单引号:
$conn = new PDO('mysql:$servername;dbname=$dbname', $username, $password);
变量不以单引号解析(除非串联),请使用双引号:
$conn = new PDO("mysql:$servername;dbname=$dbname", $username, $password);
但是,您的构造似乎不正确,因此您“可能”必须对其进行调整
手册中的示例:
$dbh = new PDO("mysql:host=localhost;dbname=test", $user, $pass);
然而,我可能错了,因为我相信有几种方法可以构造与PDO的连接
因此,将其更改为:
$dbh = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
另外,请确保已正确分配这些任务
这些被视为常量,而不是字符串:
$username = DB_USER;
$password = DB_PASSWORD;
$dbname = DB_NAME;
如果这些不是预定义的常量,则需要将它们括在引号中:
$username = "DB_USER";
$password = "DB_PASSWORD";
$dbname = "DB_NAME";
那么这个,
$servername = "http://www.myhomepagenamethingy.com/";
这很可能是引号中设置的localhost
,或者是IP地址,具体取决于系统的设置方式,这是通常的设置,而不是URL。如果我在回答中给出的内容对您不起作用,您将需要了解您的主机设置。我的解决方案发现:
找到的解决方案是更改连接cms和数据库的文件中的用户名和密码,我突然发现可能是有点的用户名或是相同的域名
直到找到结论的过程步骤
在Wordpress中,我在mysqli和PDO之间遇到了问题。
我用命令yum update&yum upgrade解决了这个问题,没有centos,他给了我以下更新:
==================================================
==============================
Package Arch Version Repository Size
==================================================
==============================
Installing:
lsphp73-mysqlnd x86_64 7.3.15-1.el7 litespeed 132k
替换lsphp73-mysqlnd.x86_64 7.3.14-1.el7
更新:
lsphp73 x86_64 7.3.15-1.el7光速5.0米
lsphp73 bcmath x86_64 7.3.15-1.el7 litespeed 27 k
lsphp73通用x86_64 7.3.15-1.el7 litespeed 650 k
lsphp73 gd x86_64 7.3.15-1.el7 litespeed 114 k
lsphp73 imap x86_64 7.3.15-1.el7 litespeed 32k
lsphp73 MB字符串x86_64 7.3.15-1.el7 litespeed 559 k
lsphp73 opcache x86_64 7.3.15-1.el7 litespeed 191 k
lsphp73 pdo x86_64 7.3.15-1.el7 litespeed 67 k
lsphp73进程x86_64 7.3.15-1.el7 litespeed 29 k
lsphp73 soap x86_64 7.3.15-1.el7 litespeed 120 k
lsphp73 xml x86_64 7.3.15-1.el7 litespeed 126 k
openlitespeed x86_64 1.6.9-1.el7 litespeed 37米
交易摘要
================================================== ==============================
安装1个软件包
升级12个软件包
下载总大小:44米
下载软件包:
没有可用于litespeed的Presto元数据
总计13MB/s | 44MB 00:03
除了我的
fastcgi_pass unix:/var/php nginx/1582263384347.sock/socket
这引起了冲突
但是它仍然没有解决问题。谢谢你发现了这些引文。这肯定解决了语法错误。即使我已经确认了我的数据库名称,我也收到了一个未选择数据库的错误。是因为数据库主机名不正确吗?@ahnbizcad不客气。在发现你的连接后,我对我的答案做了一些编辑重新加载它以查看它们在下面的位置,其中显示“但是,您的构造似乎已关闭,因此您可能”必须“调整它…”-缺少“主机=”。也请参阅手册。同时检查您的常量。啊,即使在阅读之后,host=
部分也完全绕过了我的视觉和心理雷达。您认为问题总是不存在的:p现在我只需要授予我指定的用户名权限。=]我真的没有得到否决票。嘘,一些可怜的bas塔德只是喜欢过悲惨的生活。而那个可怜的混蛋的名字毫无意义。@Fred ii-我支持你,你得到了有史以来最详细的答案!
$servername = "http://www.myhomepagenamethingy.com/";
==================================================
==============================
Package Arch Version Repository Size
==================================================
==============================
Installing:
lsphp73-mysqlnd x86_64 7.3.15-1.el7 litespeed 132k