我必须使用某人的数据库来开发游戏,遗憾的是该游戏有一个名为“User”或[dbo][User]的表,并且无法重命名。
现在,我需要在 PHP 中使用 PDO 访问它,并且当我使用此查询时:
$query = "SELECT UserId AS INTUSERID FROM dbo.User WHERE YahooId = 'abcdef'";
它失败了,因为没有获取任何内容,因为“User”是那里的保留关键字。从 MS SQL Server 我可以这样做:
SELECT UserId AS INTUSERID FROM [GameName].[dbo].[User] WHERE YahooId = 'abcdef'
它有效。
我应该如何在 PHP 中准备查询才能执行?我尝试在表名周围加上单引号,但这没有效果。
正确的使用方法是什么
[GameName].[dbo].[User]
来自 PHP PDO 作为表名?
Update:这就是我的连接方式:
try{
$conn = new PDO("xxx.rds.amazonaws.com,1150;Database=xyz","admin","password");
} catch(PDOException $e){
echo "Connection failed: " . $e->getMessage();
}
除了评论中的讨论之外,我还提供了这一点,以便问题得到答案。我认为方括号在用于定义查询的 php 字符串中可以正常工作,因此我在自己的代码上测试了它,该代码使用 PDO 连接到 MS-SQL。
所以以下应该有效......
$query = "SELECT UserId AS INTUSERID FROM dbo.[User] WHERE YahooId = 'abcdef'";
边注- 如果您的 YahooId 来自可以由用户操纵的来源(例如 $_GET),您应该研究准备好的报表 https://www.php.net/pdo.prepared-statements与 PDO...
$query = "SELECT UserId AS INTUSERID FROM dbo.[User] WHERE YahooId = ?;";
$statement= $db->prepare($query);
$statement->execute(array($userinput));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)