我第一次做PHP编码。我得到了以下错误:
错误:
警告:mysqli\u real\u escape\u string()要求参数1为mysqli,布尔值在第9行的C:\xampp\htdocs\331002.php中给出
警告:mysqli\u real\u escape\u string()要求参数1为mysqli,布尔值在第10行的C:\xampp\htdocs\331002.php中给出
警告:mysqli\u real\u escape\u string()要求参数1为mysqli,布尔值在第11行的C:\xampp\htdocs\331002.php中给出
注意:未定义索引:第12行C:\xampp\htdocs\331002.php中的empID
警告:mysqli\u real\u escape\u string()要求参数1为mysqli,布尔值在第12行的C:\xampp\htdocs\331002.php中给出
警告:mysqli_query()期望参数1为mysqli,在第17行的C:\xampp\htdocs\331002.php中给出布尔值
警告:mysqli_error()要求参数1为mysqli,布尔值在第18行的C:\xampp\htdocs\331002.php中给出
这是我的代码:
<?php
$con=mysqli_connect("localhost","root","root","student");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// escape variables for security
$FName = mysqli_real_escape_string($con, $_POST['firstName']);
$LName = mysqli_real_escape_string($con, $_POST['lastName']);
$Salary = mysqli_real_escape_string($con, $_POST['salary']);
$ID = mysqli_real_escape_string($con, $_POST['empID']);
$sql="INSERT INTO PersonInfo (FName, LName, empID, Salary)
VALUES ('$FName', '$LName','$ID','$Salary')";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>
您的问题位于脚本的顶部:
$con=mysqli_connect("localhost","root","root","student");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// escape variables for security
$FName = mysqli_real_escape_string($con, $_POST['firstName']);
您已经检查了mysqli连接,但是如果存在连接错误,您的脚本就会重复它并继续运行。如果存在连接错误,脚本应该die
,或者至少跳过DB交互,因为它不能继续数据库事务:
$con = mysqli_connect("example.com", "user", "password", "database");
if (mysqli_connect_errno($con)) {
die("Failed to connect to MySQL: " . mysqli_connect_error());
}
该消息清楚地告诉您,mysqli_real_escape_string的第一个参数是布尔型的数据类型。如果您不知道数据类型之间的差异,我建议您查找它们,了解它们对于任何语言的编程都是必不可少的。如果查看文档,您会看到它需要“由mysqli_connect()或mysqli_init()返回的链接标识符”。
您对mysqli_connect()的调用返回false,您需要找出原因并处理返回false的情况。我猜是连接错误。
php手册的页面上甚至有一个示例显示:
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
通常的“检查连接”模式如下:
<?php
$con=mysqli_connect("localhost","root","root","student");
// Check connection
if (false === $con) {
// die will "finish" the script
die("Failed to connect to MySQL: " . mysqli_connect_error());
}
mysqli\u real\u escape\u string
需要一个您似乎没有的有效连接。
当我试图在windows上设置一个PHP环境(使用wamp)来使用Amazon PHP SDK时,当我试图运行一个示例测试时,我得到以下错误: 我已经添加了以下行到我的php.ini 这是我使用此VBS脚本创建的证书的位置 我也重新启动了WAMP服务。
我有一个表格,可以很好地上传很多图像文件,大小也不一样。 但是有些图像没有上传到服务器。 问题图像具有空的$\u文件[name][tmp\u name]和$\u文件[name][error]==8 同时其他图像(文件大小较大或较小)正确上传。 你有什么想法吗? 谢谢
我想格式化目录中的php文件,使代码看起来整洁可读。我知道如何通过eclipse php实现这一点,但它们是一种通过代码一次性完成多个文件的方法吗?
PHP代码的编译 PHP是解析型高级语言,事实上从Zend内核的角度来看PHP就是一个普通的C程序,它有main函数,我们写的PHP代码是这个程序的输入,然后经过内核的处理输出结果,内核将PHP代码"翻译"为C程序可识别的过程就是PHP的编译。 那么这个"翻译"过程具体都有哪些操作呢? C程序在编译时将一行行代码编译为机器码,每一个操作都认为是一条机器指令,这些指令写入到编译后的二进制程序中,执行
我试图得到Sonarqube代码,代码复盖率和重复指标显示新的PHP代码添加。我可以看到添加的新代码的代码问题/代码气味。但是没有显示代码重复的计数(我甚至添加了几行重复的代码,以确保获得度量标准时有重复的行)。 下面是我的工作环境 null null 我没有看到很多关于如何获得新代码添加的报告的文档。在这方面的任何帮助都是非常感谢的。 谢谢。
1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件导致删除数据库失败 1010:不能删除数据目录导致删除数据库失败 1011:删除数据库文件失败 1012:不能读取系统表中的记录 1020:记录已被其他用户修改 1021:硬盘剩余空间不足,请加大硬盘可用空间 1022:关键字重复,更改记录失败