-1

我正在尝试转换我的 mysql 命令以适应 mysqli 的新标准,我将发布脚本,然后发布问题。我已经在数据库中创建了表。

配置.php:

$dbhost="databasehost";
$dbusername="username";
$dbpassword="password";
$dbname="databasename";

$connect = mysql_connect($dbhost, $dbusername, $dbpassword);
mysql_select_db($dbname,$connect) or die ("Could not connect to database");

?>

插入.php:

include("config.php");

if (isset($_POST[firstname]) && isset($_POST[lastname]) && isset($_POST[age])) {
    $sql = "INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
    mysql_query($sql, $connect); 
    header("Location: add.htm");
    // "1 record added";
}
else {
    echo "no record added";
}

if (!mysql_query($sql,$connect))
  {
  die('Error: ' . mysql_error());
  }

mysql_close($connect);
?>

视图.php:

<?php
include("config.php");

$sql = mysql_query("SELECT * FROM Persons");
if ($sql) {
    while($results = mysql_fetch_array($sql)) {
        echo $results['FirstName'] . ', ' . $results['LastName'] . ', ' . $results['Age'] .     '<br/>';
    }
} else {
    die('Error: ' . mysql_error());
}


mysql_close($connect);
?>
  • 首先,如何修改脚本以使用 mysqli 而不是 mysql?
  • 其次,当使用上面的脚本时,当我从
    表单中添加一些东西时,它总是添加重复的条目。我该如何防止呢?
  • 三、为了防止sql注入,我可以在代码中添加什么?我知道对于 php attach 我可以使用 "$firstname = trim(strip_tags(stripslashes($_POST['firstname'])));" 由于我正在清理输入,这是否也包括 sql 注入?
4

1 回答 1

2

请仔细阅读迁移的官方手册:

https://wikis.oracle.com/display/mysql/Converting+to+MySQLi

于 2013-02-28T17:48:35.470 回答