为什么一个人不应该使用mysql_*功能的技术原因是什么?(例如mysql_query(),mysql_connect()或mysql_real_escape_string())?
即使他们在我的网站上工作,为什么还要使用其他东西?
如果他们不在我的网站上工作,为什么我会收到错误
警告:mysql_connect():没有这样的文件或目录
我搜索过网络,到目前为止我所看到的是你可以使用mysql_和mysqli_一起意义:
<?php
$con=mysqli_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysql_close($con);
echo "Done";
?>
Run Code Online (Sandbox Code Playgroud)
要么
<?php
$con=mysql_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysqli_close($con);
echo "Done";
?>
Run Code Online (Sandbox Code Playgroud)
有效,但是当我使用这段代码时,我得到的是:
Connected
Warning: mysql_close() expects parameter 1 to be resource, object given in D:\************.php on line 9
Done
Run Code Online (Sandbox Code Playgroud)
对于第一个和相同的除外mysqli_close().对于第二个.
问题是什么?我不能使用mysql_和mysqli在一起?还是正常的?我可以检查连接是否有效吗?(if(mysq...))
致命错误:未捕获错误:在C:\ xampp\htdocs\phoenixproject\register.php中调用未定义函数mysql_escape_string():16堆栈跟踪:#0 {main}抛出C:\ xampp\htdocs\phoenixproject\register.php在第16行
如何解决这个问题?
<?php
require("config.php");
?>
<?php
if(isset($_POST['submit'])){
$email1 = $_POST['email1'];
$email2 = $_POST['email2'];
$pass1 = $_POST['pass1'];
$pass2 = $_POST['pass2'];
if($email1 == $email2) {
if($pass1 == $pass2) {
//All good. Nastavi broo.
$name = mysql_escape_string($_POST['name']);
$lname = mysql_escape_string($_POST['lname']);
$uname = mysql_escape_string($_POST['uname']);
$email1 = mysql_escape_string($email1);
$email2 = mysql_escape_string($email2);
$pass1 = mysql_escape_string($pass1);
$pass2 = mysql_escape_string($pass2);
mysql_query("INSERT INTO `users` (`id`, `name`, `lname`, `uname`, `email`, `pass`) VALUES (NULL, '$name', '$lname', '$uname', '$email1', '$pass1')") or die (mysql_error());
}else{
echo "Sorry, your password is …Run Code Online (Sandbox Code Playgroud)