Heim > Datenbank > MySQL-Tutorial > Detaillierte Erläuterung der Vorverarbeitungsbeispiele der PHP-MySQL-Erweiterung

Detaillierte Erläuterung der Vorverarbeitungsbeispiele der PHP-MySQL-Erweiterung

零下一度
Freigeben: 2017-06-28 16:19:26
Original
1693 Leute haben es durchsucht

Im vorherigen Artikel „MySQL-Grundkenntnisse“ habe ich über die Installation und die grundlegenden Operationen von MySQL gesprochen (hauptsächlich die Abfrageoperation einer einzelnen SQL-Anweisung). Heute stelle ich einen sehr wichtigen Teil von MySQL vor: die Vorverarbeitung.

Bei MySQLi-Operationen sind häufig die drei Hauptklassen beteiligt: ​​MySQLi-Klasse, MySQL_STMT-Klasse und MySQLi_RESULT-Klasse. Die Vorverarbeitung erfolgt hauptsächlich über die Klasse MySQL_STMT.

Die Vorverarbeitung ist ein wichtiges Mittel zur Verhinderung von SQL-Injection und von großer Bedeutung für die Verbesserung der Website-Sicherheit.

Der Fall dieses Artikels ist, dass der Datenbankname test ist, der Datentabellenname test ist, die Felder zwei IDs und Titel haben und die ID den Primärschlüssel automatisch erhöht.

<?php 
define("HOST", "localhost");define("USER", &#39;root&#39;);define("PWD", &#39;&#39;);define("DB", &#39;test&#39;);$mysqli=new Mysqli(HOST,USER,PWD,DB);if ($mysqli->connect_errno) {    "Connect Error:".$mysqli->connect_error;
}$mysqli->set_charset(&#39;utf8&#39;);$id=&#39;&#39;;$title=&#39;title4&#39;;//用?代替 变量$sql="INSERT test VALUES (?,?)";//获得$mysqli_stmt对象,一定要记住传$sql,预处理是对sql语句的预处理。$mysqli_stmt=$mysqli->prepare($sql);//第一个参数表明变量类型,有i(int),d(double),s(string),b(blob)$mysqli_stmt->bind_param(&#39;is&#39;,$id,$title);//执行预处理语句if($mysqli_stmt->execute()){    echo $mysqli_stmt->insert_id;
}else{    echo $mysqli_stmt->error;
}$mysqli->close();
Nach dem Login kopieren


Verwenden Sie MySQLi-Vorverarbeitung, um SQL-Injection zu verhindern:

$id=&#39;4&#39;;$title=&#39;title4&#39;;$sql="SELECT * FROM test WHERE id=? AND title=?";$mysqli_stmt=$mysqli->prepare($sql);$mysqli_stmt->bind_param(&#39;is&#39;,$id,$title);if ($mysqli_stmt->execute()) {    $mysqli_stmt->store_result();    if($mysqli_stmt->num_rows()>0){        echo "验证成功";
    }else{        echo "验证失败";
    }
}    $mysqli_stmt->free_result();    $mysqli_stmt->close();
Nach dem Login kopieren


Verwenden Sie MySQLi-Vorverarbeitung, um Abfragen auszuführen Aussage:


$sql="SELECT id,title FROM test WHERE id>=?";$mysqli_stmt=$mysqli->prepare($sql);$id=1;$mysqli_stmt->bind_param(&#39;i&#39;,$id);if($mysqli_stmt->execute()){    $mysqli_stmt->store_result();   //将一个变量绑定到一个prepared语句上用于结果存储    $mysqli_stmt->bind_result($id,$title);    while ($mysqli_stmt->fetch()) {        echo $id.&#39; :&#39;.$title.&#39;<br/>&#39;;
    }


}
Nach dem Login kopieren


Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Vorverarbeitungsbeispiele der PHP-MySQL-Erweiterung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage