标签: pdo

参考 - 有关PDO的常见问题解答

这是什么?

这是有关PHP数据对象的常见问题列表

为什么是这样?

由于PDO具有常规PHP用户未知的某些功能,因此有关PDO中的预准备语句和错误处理的问题非常频繁.所以,这只是一个可以找到它们的地方.

我该怎么办?

如果您的问题已与此列表密切相关,请在下面找到您的问题并将修复程序应用于您的代码.对其他问题进行简要介绍也是一个好主意,让自己为其他常见陷阱做好准备.

列表

也可以看看

php pdo

50
推荐指数
3
解决办法
7614
查看次数

如何将参数绑定到模型中使用的Laravel中的原始数据库查询?

回覆,

我有以下查询:

$property = 
    Property::select(
        DB::raw("title, lat, lng, ( 
            3959 * acos( 
                cos( radians(:lat) ) * 
                cos( radians( lat ) ) * 
                cos( radians( lng ) - radians(:lng) ) + 
                sin( radians(:lat) ) * 
                sin( radians( lat ) ) 
            ) 
        ) AS distance", ["lat" => $lat, "lng" => $lng, "lat" => $lat])
    )
    ->having("distance", "<", $radius)
    ->orderBy("distance")
    ->take(20)
    ->get();
Run Code Online (Sandbox Code Playgroud)

它不起作用:Invalid parameter number: mixed named and positional parameters.

有没有人知道一个技巧或解决方法(我显然可以编写完整的查询,但更喜欢使用流利的构建器).

php mysql pdo laravel laravel-4

49
推荐指数
3
解决办法
6万
查看次数

为什么PDO比mysql_real_escape_string更好地逃避MySQL查询/查询字符串?

我被告知我会更好地使用PDOMySQL转义,而不是mysql_real_escape_string.

也许我有一个脑死亡的日子(或者可能是因为我没有想象力是一个天生的程序员,而且我仍然处于PHP的新手阶段),但是检查了PHP手册并阅读了关于PDO的条目,我仍然不清楚PDO究竟是什么以及为什么它比使用更好mysql_real_escape_string.这可能是因为我还没有真正掌握OOP的复杂性(我假设它与OOP有关),但除了变量和数组值似乎在其前面有冒号之外,我仍然不确定它到底是什么以及你如何使用它(以及为什么它比它好mysql_real_escape_string.(它也可能与我没有真正理解'类'是什么的事实有关,所以,当我读到"PDO课程"时,我真的不是更聪明的.

在MySQL网站的"开发者专区"中读过两篇文章后,我仍然不清楚.由于我现在甚至无法弄清楚它到底是什么,我认为现在可能使用它有点超出我的范围,但我仍然有兴趣扩大我的教育并找出如何改进的方法.

任何人都可以用"简单的英语"向我解释PDO是什么(或指向我用简单英语写的主题的方向),以及你如何使用它?

php pdo escaping mysql-real-escape-string

48
推荐指数
4
解决办法
4万
查看次数

从PDO准备好的语句中获取查询

有没有办法检索用于生成PDO Prepared语句对象的查询?

php mysql pdo

48
推荐指数
3
解决办法
4万
查看次数

我可以在PHP中使用PDO创建数据库吗?

我想创建一个使用PDO与MySQL交互的类.我可以使用PDO创建新的MySQL表吗?

php mysql pdo

47
推荐指数
1
解决办法
4万
查看次数

持久数据库连接 - 是或否?

我正在使用PHP的PDO层进行项目中的数据访问,我一直在阅读它并发现它对持久数据库连接有很好的内在支持.我想知道何时/是否应该使用它们.我会在CRUD沉重的应用程序中看到性能优势吗?是否存在需要考虑的缺点,可能与安全性有关?

如果对你很重要,我正在使用MySQL 5.x.

persistence pdo database-connection

46
推荐指数
2
解决办法
3万
查看次数

PHP PDO与普通的mysql_connect

我应该使用PHP PDO或普通的mysql_connect在PHP中执行数据库查询吗?

哪一个更快?

PDO的一大好处是界面在多个数据库中是一致的.对于预处理语句也有一些很酷的函数,它们可以省去一些逃避所有查询字符串的麻烦.PDO的可移植性大于mysql_connect.

那么,我应该因为这些原因使用PDO还是坚持使用传统的mysql_connect?

php mysql pdo

46
推荐指数
5
解决办法
5万
查看次数

php pdo:获取表的列名

如何使用PDO从表中获取所有列名?

id         name        age
1          Alan        35      
2          Alex        52
3          Amy         15
Run Code Online (Sandbox Code Playgroud)

我想要的信息是,

id         name        age
Run Code Online (Sandbox Code Playgroud)

编辑:

这是我的尝试,

$db = $connection->get_connection();
$select = $db->query('SELECT * FROM contacts');

$total_column = $select->columnCount();
var_dump($total_column);

for ($counter = 0; $counter < $total_column; $counter ++) {
    $meta = $select->getColumnMeta($counter);
    $column[] = $meta['name'];
}
print_r($column);
Run Code Online (Sandbox Code Playgroud)

然后我明白了,

Array
(
    [0] => id
    [1] => name
    [2] => age
    ...

)
Run Code Online (Sandbox Code Playgroud)

php pdo fetch

46
推荐指数
4
解决办法
10万
查看次数

PDO错误:"SQLSTATE [HY000]:常规错误"更新数据库时

使用PDO更新数据库时出错.我是PDO的新手所以也许这个问题很小,我只是不明白. 关于错误的有趣的事情,命令工作正常,数据库确实得到更新. 但它仍然会向我返回一个错误.

码:

try {
    $stmt = $pdo->prepare("UPDATE $page SET $section = :new_content WHERE $section = '$old_content'");
    $stmt->execute(array(
        'new_content' => $new_content
    ));
    $result = $stmt->fetchAll();
    echo "Database updated!";
}
catch(PDOException $e) {
    echo 'ERROR UPDATING CONTENT: ' . $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)

错误: ERROR UPDATING CONTENT:SQLSTATE [HY000]:一般错误

我真的不知道问题出在哪里,因为它非常不透明,我无法找到任何有同样问题的人.

php pdo

46
推荐指数
2
解决办法
7万
查看次数

检查空结果(php,pdo,mysql)

拜托,谁能告诉我这里我做错了什么?我只是从表中检索结果然后将它们添加到数组中.一切都按预期工作,直到我检查一个空的结果...

这将获得匹配,将其添加到我的数组并按预期回应结果:

$today = date('Y-m-d', strtotime('now'));

$sth = $db->prepare("SELECT id_email FROM db WHERE hardcopy = '1' AND hardcopy_date <= :today AND hardcopy_sent = '0' ORDER BY id_email ASC");

$sth->bindParam(':today',$today, PDO::PARAM_STR);

if(!$sth->execute()) {
    $db = null ;
    exit();
}

while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
    $this->id_email[] = $row['id_email'] ;
    echo $row['id_email'] ;
}

$db = null ;
return true ;
Run Code Online (Sandbox Code Playgroud)

当我尝试检查空结果时,我的代码返回'empty',但不再产生匹配结果:

$today = date('Y-m-d', strtotime('now'));

$sth = $db->prepare("SELECT id_email FROM db WHERE hardcopy = '1' AND hardcopy_date <= :today AND hardcopy_sent = …
Run Code Online (Sandbox Code Playgroud)

php mysql pdo

46
推荐指数
4
解决办法
10万
查看次数