当前位置:Gxlcms > 数据库问题 > PHP MYSQL

PHP MYSQL

时间:2021-07-01 10:21:17 帮助过:37人阅读


$serverName = "127.0.0.1"; $userName = "root"; $password = "2202125514"; $databaseName = "test_1"; $conn = new mysqli($serverName, $userName, $password, $databaseName); if($conn->connect_error){   echo("连接失败"); } else{   echo("连接成功"); } $sql = "create table ta_1(   id smallint unsigned primary key auto_increment,   name varchar(10),   ps varchar(50) )";
if($conn->query($sql) == true){   echo(‘<br>‘ . "数据表ta_1创建成功"); } else{   echo("<br>" . "创建失败<br>" . "错误信息:" . $conn->error); } $conn->query($sql_1); //执行某条mysql指令 $sql = "insert into ta_1(name, age) values(‘john_1‘, ‘19‘);"; $sql .= "insert into ta_1(name, age) values(‘man_4‘, ‘30‘);"; $sql .= "insert into ta_1(name, age) values(‘amn_5‘, ‘26‘);"; $sql .= "create table ta_3(country varchar(10));"; if($conn->multi_query($sql)){ //执行多条sql语句   echo("成功<br>"); } else{   echo("失败<br>错误信息:" . $conn->error); } 2、MySQLi 预处理语句 用于防止sql注入 预处理语句的工作原理如下:   1)预处理:创建 SQL 语句模板并发送到数据库。预留的值使用参数 "?" 标记 。例如:?INSERT INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?)   2)数据库解析,编译,对SQL语句模板执行查询优化,并存储结果不输出。   3)执行:最后,将应用绑定的值传递给参数(”?” 标记),数据库执行语句。应用可以多次执行语句,如果参数的值不一样。 相比于直接执行SQL语句,预处理语句有两个主要优点:   预处理语句大大减少了分析时间,只做了一次查询(虽然语句多次执行)。   绑定参数减少了服务器带宽,你只需要发送查询的参数,而不是整个语句。   预处理语句针对SQL注入是非常有用的,因为参数值发送后使用不同的协议,保证了数据的合法性。 $stmt = $conn->prepare("insert into ta_1(name, age) values(?, ?);"); $stmt->bind_param("si", $_name, $_age); $_name = "man_11"; $_age = 14; $stmt->execute(); $_name = "man_12"; $_age = 15; $stmt->execute(); echo("插入成功"); $stmt->close(); $conn->close(); 3、bind_param() 函数 $stmt->bind_param("sss", $firstname, $lastname, $email); 该函数绑定了 SQL 的参数,且告诉数据库参数的值。 "sss" 参数列处理其余参数的数据类型。s 字符告诉数据库该参数为字符串。 参数有以下四种类型: i - integer(整型) d - double(双精度浮点型) s - string(字符串) b - BLOB(binary large object:二进制大对象) 每个参数都需要指定类型。 通过告诉数据库参数的数据类型,可以降低 SQL 注入的风险。
4、查询数据 $sql = "select * from ta_1;"; $result = $conn->query($sql); if($result->num_rows > 0){ while($row = $result->fetch_assoc()){ echo($row["id"] . "--" . $row["name"] . "--" . $row["age"] . "<br>"); } } else{ echo("查询不到结果"); } $sql = "select * from ta_1 where(id=11);"; $result = $conn->query($sql); $row = $result->fetch_assoc(); //$row = $result->fetch_array(); echo("hello " . $row["name"] . "<br>now you are " . $row[“age"]);

通配符的使用
$sql = ‘select * from ta_1 where(name like \‘‘ . $s . ‘%\‘)‘;

 

PHP MYSQL

标签:error   成功   pass   而不是   guests   ble   har   new   原理   

人气教程排行