【问题标题】:Convert php code with Mysql ext to PDO won't work使用 Mysql ext 将 php 代码转换为 PDO 将不起作用
【发布时间】:2012-11-25 09:42:44
【问题描述】:

出于安全考虑,我决定将带有 mysql 代码的简单 php 转换为 PDO,因为它会加强我的安全性。我的旧代码:

$host = "localhost"; 
$user = "username"; 
$pass = "pass"; 
$database = "mydatabase"; 

$linkID = mysql_connect($host, $user, $pass) or die("Could not connect to host."); 
mysql_select_db($database, $linkID) or die("Could not find database."); 
$name=$_POST['name'];
$message=$_POST['message'];
$ip = $_SERVER['REMOTE_ADDR'];
$query="INSERT INTO table (date_time, name, message,ip) VALUES     (NOW(),'$name','$message','$ip')";
If (mysql_query($query,$linkID)){
    //Success
    }else{
    //Failure
    }

我的新代码是:

$hostname = 'localhost';
$username = 'username';
$password = 'pass';
$dbname = 'mydatabase';

$dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
if($_POST['name'] && $_POST['message']) {
    $name = $_POST['name'];
    $message = $_POST['message'];
    $ip = $_SERVER['REMOTE_ADDR']; 
    $sql = "INSERT INTO table (date_time, name, message,ip)VALUES (NOW(), :name, :message,'$ip')";
    $stmt = $dbh->prepare($sql);
    $stmt->bindParam(':name', $name, PDO::PARAM_STR);
    $stmt->bindParam(':message', $message, PDO::PARAM_STR);
    if ($stmt->execute()) {
      echo "OK";
    }
}

很奇怪,当我将浏览器指向 index.php?name=someName&message=someMessage 时,我的 PDO 代码不会回显任何内容(甚至是 echo "ok" )或错误,因此我可以确定问题出在哪里.

我可以确认没有数据插入到数据库中。

我什至添加了 try catch 但没有任何改变。我的 php 支持 PDO,简单的 Mysql 代码正在运行。 有任何想法吗?谢谢

【问题讨论】:

  • index.php?name=someName&message=someMessage 使用$_GET 传递数据,您的代码需要$_POST 中的数据。
  • 启用display_errors 它会显示一些东西。
  • 注意:未定义索引:第 11 行 index.php 中的名称 if($_POST['name'] && $_POST['message']) {
  • 要么将$_POST替换为$_GET,要么将表单方法从method="get"替换为method="post"

标签: php mysql pdo


【解决方案1】:

在你的情况下,

if($_POST['name'] && $_POST['message']) {

应该是:

if($_GET['name'] && $_GET['message']) {

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 2013-02-03
    • 1970-01-01
    • 2011-10-25
    • 2019-11-07
    相关资源
    最近更新 更多