Php 为什么脚本不喜欢使用MySQLi,但可以使用MySQL呢?
我在使用mysqli执行带有SELECT、DELETE、INSERT和updatequerys的脚本时遇到了一些问题。它们在使用规范mysql(如mysql_connect)时工作,但在使用mysqli时,我得到了奇怪的结果。它可以很好地处理其他脚本中的许多SELECT查询,但当涉及到一些管理内容时,它就搞砸了 如果不附上整个剧本,很难解释 这是用于修改Php 为什么脚本不喜欢使用MySQLi,但可以使用MySQL呢?,php,mysql,mysqli,Php,Mysql,Mysqli,我在使用mysqli执行带有SELECT、DELETE、INSERT和updatequerys的脚本时遇到了一些问题。它们在使用规范mysql(如mysql_connect)时工作,但在使用mysqli时,我得到了奇怪的结果。它可以很好地处理其他脚本中的许多SELECT查询,但当涉及到一些管理内容时,它就搞砸了 如果不附上整个剧本,很难解释 这是用于修改 function database_queryModify($sql,&$insertId) { global $databas
function database_queryModify($sql,&$insertId)
{
global $databaseServer;
global $databaseName;
global $databaseUsername;
global $databasePassword;
global $databaseDebugMode;
$link = @mysql_connect($databaseServer,$databaseUsername,$databasePassword);
@mysql_select_db($databaseName,$link);
$result = mysql_query($sql,$link);
if (!$result && $databaseDebugMode)
{
print "[".$sql."][".mysql_error()."]";
}
$insertId = mysql_insert_id();
return mysql_affected_rows();
}
以下是我为mysqli更改的内容
function database_queryModify($sql,&$insertId)
{
global $databaseServer;
global $databaseName;
global $dbUser_feedadmin;
global $dbUser_feedadmin_pw;
global $databaseDebugMode;
$link = @mysqli_connect($databaseServer,$dbUser_feedadmin,$dbUser_feedadmin_pw,$databaseName);
$result = mysqli_query($link, $sql);
if (!$result && $databaseDebugMode)
{
print "[".$sql."][".mysqli_error()."]";
}
$insertId = mysqli_insert_id();
return mysqli_affected_rows();
}
看起来对吗
它实际上并没有产生错误,但其运行方式与使用mysql时不同。有什么想法吗?这是我通常使用Mysqli的方式
$mysqli = new mysqli($myServer, $myUser, $myPass, $myDB);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit;
}
$result = $mysqli->query($query);
while ($row=$result->fetch_assoc()) {
print_r($row);
}
注意:mysqli是一个类,$mysqli是保存该类实例的变量,query是该类的一个方法,它返回一个具有自己方法的结果类。就php而言,您正在一次运行所有语句,因此受影响的行或最后插入的id等函数将无法按预期工作。
(如果我错了,请纠正我,我已经有一段时间没有使用mysqli了。)一些mysqli函数需要一些修补,例如包括$link