我正在使用Dreamweaver生成用于连接数据库的PHP和SQLi代码。我已成功完成,但我一直收到以下错误:
<xe:dataView
...
collapsibleDetail="true">
<xp:this.facets>
<xp:panel
id="details"
xp:key="detail">
...
</xp:panel>
</xp:this.facets>
...
<xe:this.summaryColumn>
<xe:viewSummaryColumn
...
href="javascript:document.getElementById('#{id:details}'.replace(':details', '_shimg')).parentElement.click()">
</xe:viewSummaryColumn>
</xe:this.summaryColumn>
</xe:dataView>
这是我的源代码:
Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in C:\wamp\www\Maseno\Site\Template.php on line 32
Warning: mysqli_query() expects parameter 1 to be mysqli, string given in C:\wamp\www\Maseno\Site\Template.php on line 34
Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\wamp\www\Maseno\Site\Template.php on line 34,
答案 0 :(得分:2)
您正在使用mysql_和mysql i _功能。你应该只使用mysql i 或PDO。
mysql_函数已被弃用。
mysqli_函数与mysql_函数有点不同。大多数时候你需要添加一个额外的参数:连接资源。
例如:
$link = mysqli_connect("localhost", "my_user", "my_password", "my_database");
mysqli_query($link, "SHOW TABLES");
只需谷歌&#34; php 功能名称 &#34;查找有关特定功能的信息
答案 1 :(得分:2)
您没有发布连接到数据库的部分,但是当您使用mysqli_connect()
进行连接时,该函数会返回mysqli
对象(或失败时为false
)。如果使用过程样式,则必须将此对象作为参数传递给大多数MySQLi函数。
在此代码中:
mysqli_select_db($database_connect, $connect); $query_Users = "SELECT * FROM students"; $Users = mysqli_query($query_Users, $connect) or die(mysqli_error()); $row_Users = mysqli_fetch_assoc($Users); $totalRows_Users = mysqli_num_rows($Users);
对以下功能的调用不正确:
您的mysqli_select_db()
调用也存在问题,因为PHP抱怨第一个参数是字符串。我相信你的参数顺序错误; mysqli_select_db()
的参数顺序与<{3}}的顺序不一样(没有 i
)。
您的代码应如下所示:
/* $connect = mysqli_connect ( ... ); */
mysqli_select_db($connect, $database_connect);
$query_Users = "SELECT * FROM students";
$Users = mysqli_query($connect, $query_Users)
or die(mysqli_error($connect));
$row_Users = mysqli_fetch_assoc($Users);
$totalRows_Users = mysqli_num_rows($Users);
此代码也存在问题:
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); /* ... */
您正在呼叫mysql_select_db()
(不包含 i
),而不是mysql_real_escape_string()
。 “真正的”转义函数的要点是该函数在转义字符串时会考虑连接的字符编码。但是,您不能将MySQLi链接资源与旧的MySQL转义函数一起使用。
由于您使用的是MySQLi,因此无需检查是否存在“真正的”转义函数。您的代码应该只是阅读:
$theValue = mysqli_real_escape_string($connect, $theValue);
并确保首先连接到数据库。
请注意,mysqli_real_escape_string()
,mysqli_connect()
和mysqli_select_db()
可能会返回false
,而mysqli_query()
可能会返回NULL
。强大的代码应该(几乎)测试错误条件的所有返回值。